基于docker的swarm集群搭建

本文介绍了如何在Docker Swarm环境下搭建Nginx集群。首先,我们需要准备三个节点,并确保每个节点都有Nginx镜像。接着,在Master节点上加载visualizer.tar文件并删除不必要的资源。然后,分别在Master和Slave节点上执行相关命令来创建和配置集群。最后,展示了如何进行服务的滚动更新以及设置全局模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、环境

dokcer1:172.25.17.101master && slave
docker2:172.25.17.102slave
dokcer3:172.25.17.103slave

2、准备节点,三个节点都需nginx镜像    docker tag nginx:1.16 nginx      修改标签
    master:
        docker load -i visualizer.tar
###删除所有不用的容器网络,卷,容器...

3、步骤

master:

创建集群
      docker swarm init   已经内置
      docker swarm join --token SWMTKN-1-6amy7d20mbwy2wxrpw5yio8ksycsl8c754x0wq684f9nd4dd4r-937fdrhr8k23h77dq8hgz7klh 172.25.17.101:2377
创建网络
    docker network create webnet
    创建服务
        docker service create --name web --replicas 3 --publish 80:80 nginx
        docker server ls    查看服务
        docker service ps web       查看web服务
        docker ps
             echo docker1 >index.html
             docker cp index.html 9e444c1da720:/usr/share/nginx/html

slave:

加入集群
        docker swarm join --token SWMTKN-1-6amy7d20mbwy2wxrpw5yio8ksycsl8c754x0wq684f9nd4dd4r-937fdrhr8k23h77dq8hgz7klh 172.25.17.101:2377

echo docker2/3 > index.html
    docker cp index.html 71b126f2e499/28bf982d4f38:/usr/share/nginx/html

master:

创建监控
        https://github.com/dockersamples/docker-swarm-visualizer swarm监控部署
        docker service create \
        --name=viz \
        --publish=8080:8080/tcp \
        --constraint=node.role==manager \
        --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
        dockersamples/visualizer 监控的镜像


拉升服务

docker service scale web=6   拉升副本,如果拉升的服务是节点的整数倍,>那么,每个节点分配相同的服务,若为奇数,分配给性能好的节点多
http://172.25.17.101:8080       查看监控服务,自动实现负载均衡和高可用
    server3:systemctl stop docker   server3上的服务会迁移到1或者2上,但是当3再次起来的时候,服务不会迁移回来,只能拉升服务,重新调度分配

滚动更新:

docker service update --help
docker service update --image game2048 --update-delay 5s --update-parallelism 2 web     更新web服务的镜像为game2048,每5s更新2个服务的镜像
测试:
    http://172.25.17.101:8080


global模式

每个节点部署仅一个服务,无法拉升,加入的节点会自动被部署服务,down掉
重启之后都会自动被部署
    docker service rm web   删除web服务
    docker service create --name web  --publish 80:80 --mode global game2048


                                                   

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值