docker swarm 集群部署.netcore项目

docker swarm 集群部署.netcore项目

使用docker swarm搭建集群,成功部署.net core 3.1项目。
(本文安装的是docker 20.10.2)

安装docker

  1. 安装依赖包
    yum install -y yum-utils device-mapper-persistent-data lvm2
  2. 设置docker源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. 查看dockers版本
    yum list docker-ce --showduplicates | sort -r
  4. 安装docker
    yum install docker-ce-20.10.2 docker-ce-cli-20.10.2 containerd.io -y
  5. 启动docker并设置开机启动
    systemctl start docker && systemctl enable docker
  6. 添加阿里云加速镜像
    阿里云加速镜像地址可登录阿里云–>容器镜像服务–>镜像中心中获得
    tee /etc/docker/daemon.json <<-‘EOF’
    {
    “registry-mirrors”: [“https://v4avll60.mirror.aliyuncs.com”]
    }
    EOF
  7. 补充bash包
    yum install bash*
    source /usr/share/bash-completion/bash_completion
  8. docker加载ip_vs模块
    modprobe ip_vs
    service docker restart 重启docker

配置docker swarm集群

  1. 修改docker的启动参数(两个节点均操作)
    vi /lib/systemd/system/docker.service
    加入以下参数
    ExecReload=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
    加载docker配置信息
    systemctl daemon-reload
    重启docker
    systemctl restart docker
  2. 创建Swarm集群
    Pull swarm的镜像(两个节点都做)
    docker pull swarm
    初始化集群
    docker swarm init
  3. 把节点加入集群(只需要在节点上运行)
    第二部初始化成功后控制台会输出以下语句
    docker swarm join --token SWMTKN-1-2unv21kzou0yt24e6xj4cm6e71bbjqlszy6an40elgnsy5sp8g-4a3ij83tarcwy9kkeg9srevg6 :
  4. 查看集群节点
    docker node list

docker swarm可视化面板Portainer 部署

  1. 搜索protainer镜像和下载镜像
    docker search portainer
    docker pull portainer/portainer
  2. **单机版运行Portainer **
    如果仅有一个docker宿主机,则可使用单机版运行,运行以下命令就可以启动了:
    docker run -d -p 9000:9000
    –restart=always
    -v /var/run/docker.sock:/var/run/docker.sock
    –name prtainer-test
    portainer/portainer
    该语句用宿主机9000端口关联容器中的9000端口,并给容器起名为portainer-test。启动成功后,使用该机器IP:PORT即可访问Portainer
    打开防火墙
    firewall-cmd --zone=public --add-port=9000/tcp --permanent # 开放9000端口
    firewall-cmd --reload 重启防火墙
    firewall-cmd --zone=public --list-ports #查看防火墙所有开放的端口

创建overlay跨主机网络

创建docker network
docker network create -d overlay --attachable --subnet=172.19.0.0/28 nginxnet
强调文本 强调文本

部署.net core项目

  1. 创建服务
    创建的服务手动添加到之前创建的网络中–network
    本文pod的数据为3 --replicas 3
    docker service create --replicas 3 --network nginxnet --name testapi(服务名) testapi(项目镜像)
  2. 使用nginx代理
    拉取nginx镜像
    docker pull nginx
    创建配置文件nginx.conf
    server {
    listen 80 ;
    listen [::]:80;
    listen 443 ssl ;
    listen [::]:443 ssl ;
    server_name 外网访问的域名;
    ssl_certificate 本文用到https访问域名证书;
    ssl_certificate_key 域名证书密钥;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {
    proxy_pass http://testapi(之前创建的服务名);
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    }
    }
  3. 发布nginx
    docker run -itd -p 80:80 -p 443:443 --network nginxnet -v pwd/nginx.conf:/etc/nginx/conf.d/defaul t.conf -v pwd/cert:/etc/nginx/cert --name nginxksyapi nginx
    到这里项目就发布完成,可以使用域名访问了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值