【docker】docker swarm中scale动态扩容或缩容

1.nginx 服务扩容 

[root@es1 data]# docker service ls
ID             NAME       MODE         REPLICAS   IMAGE                                    PORTS
8tmhn1zea9c5   mynginx1   replicated   1/1        192.168.1.11:443/myharbor/nginx:latest   *:8010->80/tcp

docker service scale mynginx1=4 


[root@es1 data]# docker service ls
ID             NAME       MODE         REPLICAS   IMAGE                                    PORTS
8tmhn1zea9c5   mynginx1   replicated   4/4        192.168.1.11:443/myharbor/nginx:latest   *:8010->80/tcp

2.查看使用nginx的节点

--由此可见已经扩容为4个节点。
[root@es1 data]# docker service ps mynginx1
ID             NAME         IMAGE                                    NODE      DESIRED STATE   CURRENT STATE                ERROR     PORTS
iixqev6xqn2s   mynginx1.1   192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 11 minutes ago                 
qpnsoe6u3w2g   mynginx1.2   192.168.1.11:443/myharbor/nginx:latest   es3       Running         Running about a minute ago             
xwifmcrelj7g   mynginx1.3   192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running about a minute ago             
6nadar1i0jsq   mynginx1.4   192.168.1.11:443/myharbor/nginx:latest   es3       Running         Running about a minute ago   

3.nginx服务缩容 

docker service scale mynginx1=1


[root@es1 data]# docker service ls
ID             NAME       MODE         REPLICAS   IMAGE                                    PORTS
8tmhn1zea9c5   mynginx1   replicated   1/1        192.168.1.11:443/myharbor/nginx:latest   *:8010->80/tcp
[root@es1 data]# docker service ps mynginx1
ID             NAME         IMAGE                                    NODE      DESIRED STATE   CURRENT STATE            ERROR     PORTS
iixqev6xqn2s   mynginx1.1   192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 14 minutes ago       

4.重新扩容到6个节点并模拟宕机


[root@es1 data]# docker service ps mynginx1
ID             NAME         IMAGE                                    NODE      DESIRED STATE   CURRENT STATE            ERROR     PORTS
iixqev6xqn2s   mynginx1.1   192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 15 minutes ago             
vvl33vmrhtcq   mynginx1.2   192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 28 seconds ago             
yv9bc92jf8d2   mynginx1.3   192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 25 seconds ago             
6jfyscvwnbjs   mynginx1.4   192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 25 seconds ago             
di6imawfh5vp   mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es3       Running         Running 27 seconds ago             
zimtcns18rlr   mynginx1.6   192.168.1.11:443/myharbor/nginx:latest   es3       Running         Running 27 seconds ago             

5.让ES3宕机 

[root@es3 ~]# systemctl stop docker
[root@es1 data]# docker service ps mynginx1
ID             NAME             IMAGE                                    NODE      DESIRED STATE   CURRENT STATE                ERROR     PORTS
iixqev6xqn2s   mynginx1.1       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 17 minutes ago                 
vvl33vmrhtcq   mynginx1.2       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running about a minute ago             
yv9bc92jf8d2   mynginx1.3       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running about a minute ago             
6jfyscvwnbjs   mynginx1.4       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running about a minute ago             
2nlsm8gs6xpr   mynginx1.5       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 33 seconds ago                 
di6imawfh5vp    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Running about a minute ago             
pfa508zk017i   mynginx1.6       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 33 seconds ago                 
zimtcns18rlr    \_ mynginx1.6   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Running about a minute ago  

--由此可见,宕机的节点上运行的nginx会故障转移到其他两个好的节点:es1/es2; 
--依然保持6个存活的节点。
[root@es1 data]# docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
lbcg0z4t2n3lgn4nld4brdsx7 *   es1        Ready     Active         Leader           20.10.16
j5qw78w2f6csdv1wvdwndm90u     es2        Ready     Active                          20.10.16
q6wuwac0yvp49ydfwzqn5n7no     es3        Down      Active                          20.10.16

--重启宕机的DOCKER节点 
[root@es3 ~]# systemctl start docker
[root@es1 data]# docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
lbcg0z4t2n3lgn4nld4brdsx7 *   es1        Ready     Active         Leader           20.10.16
j5qw78w2f6csdv1wvdwndm90u     es2        Ready     Active                          20.10.16
q6wuwac0yvp49ydfwzqn5n7no     es3        Ready     Active                          20.10.16

[root@es1 data]# docker service ps mynginx1
ID             NAME             IMAGE                                    NODE      DESIRED STATE   CURRENT STATE             ERROR     PORTS
iixqev6xqn2s   mynginx1.1       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 19 minutes ago              
vvl33vmrhtcq   mynginx1.2       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 4 minutes ago               
yv9bc92jf8d2   mynginx1.3       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 4 minutes ago               
6jfyscvwnbjs   mynginx1.4       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 4 minutes ago               
2nlsm8gs6xpr   mynginx1.5       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 3 minutes ago               
di6imawfh5vp    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Shutdown 28 seconds ago             
pfa508zk017i   mynginx1.6       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 3 minutes ago               
zimtcns18rlr    \_ mynginx1.6   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Shutdown 28 seconds ago        
--ES3节点虽然启动了,但是宕机的服务,并没有重启。且依然在ES1/ES2上。

6.停止单个服务 

--二号节点停止一个Nginx服务
[root@es2 data]# docker ps 
CONTAINER ID   IMAGE                                    COMMAND                  CREATED         STATUS         PORTS     NAMES
e5200344a494   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   8 minutes ago   Up 8 minutes   80/tcp    mynginx1.5.2nlsm8gs6xprkxgnaktwdj7te
b70fa7f45857   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   9 minutes ago   Up 9 minutes   80/tcp    mynginx1.4.6jfyscvwnbjssb1llklc9r12n
9db5dfc795d7   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   9 minutes ago   Up 9 minutes   80/tcp    mynginx1.3.yv9bc92jf8d2e6jzr37fgz98p

[root@es1 data]# docker service ps mynginx1
ID             NAME             IMAGE                                    NODE      DESIRED STATE   CURRENT STATE                 ERROR     PORTS
iixqev6xqn2s   mynginx1.1       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 27 minutes ago                  
vvl33vmrhtcq   mynginx1.2       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 12 minutes ago                  
yv9bc92jf8d2   mynginx1.3       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 12 minutes ago                  
6jfyscvwnbjs   mynginx1.4       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 12 minutes ago                  
kvaf6j0dl5f6   mynginx1.5       192.168.1.11:443/myharbor/nginx:latest   es3       Running         Running about a minute ago              
2nlsm8gs6xpr    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es2       Shutdown        Complete about a minute ago             
di6imawfh5vp    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Shutdown 8 minutes ago                  
806c2ju4s2yd   mynginx1.6       192.168.1.11:443/myharbor/nginx:latest   es3       Running         Running 57 seconds ago                  
pfa508zk017i    \_ mynginx1.6   192.168.1.11:443/myharbor/nginx:latest   es1       Shutdown        Complete about a minute ago             
zimtcns18rlr    \_ mynginx1.6   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Shutdown 8 minutes ago              
--数量还是6个,但是停止的,还是停止状态。

--缩容 

[root@es1 data]# docker service ps mynginx1
ID             NAME             IMAGE                                    NODE      DESIRED STATE   CURRENT STATE             ERROR     PORTS
iixqev6xqn2s   mynginx1.1       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 29 minutes ago              
vvl33vmrhtcq   mynginx1.2       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 14 minutes ago              
yv9bc92jf8d2   mynginx1.3       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 14 minutes ago              
kvaf6j0dl5f6   mynginx1.5       192.168.1.11:443/myharbor/nginx:latest   es3       Running         Running 3 minutes ago               
2nlsm8gs6xpr    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es2       Shutdown        Complete 3 minutes ago              
di6imawfh5vp    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Shutdown 10 minutes ago             
pfa508zk017i   mynginx1.6       192.168.1.11:443/myharbor/nginx:latest   es1       Shutdown        Complete 3 minutes ago              
zimtcns18rlr    \_ mynginx1.6   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Shutdown 10 minutes ago           
--缩绒和扩容并不会改变原来宕机的容器。

--删除宕机的容器 
[root@es2 data]# docker ps -a
CONTAINER ID   IMAGE                                    COMMAND                  CREATED          STATUS                     PORTS     NAMES
e5200344a494   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   18 minutes ago   Exited (0) 8 minutes ago             mynginx1.5.2nlsm8gs6xprkxgnaktwdj7te
9db5dfc795d7   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   19 minutes ago   Up 19 minutes              80/tcp    mynginx1.3.yv9bc92jf8d2e6jzr37fgz98p

[root@es2 data]# docker rm mynginx1.5.2nlsm8gs6xprkxgnaktwdj7te
mynginx1.5.2nlsm8gs6xprkxgnaktwdj7te
[root@es2 data]# docker ps -a
CONTAINER ID   IMAGE                                    COMMAND                  CREATED          STATUS          PORTS     NAMES
9db5dfc795d7   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   19 minutes ago   Up 19 minutes   80/tcp    mynginx1.3.yv9bc92jf8d2e6jzr37fgz98p

--一号节点删除宕机容器
[root@es1 data]# docker ps -a
CONTAINER ID   IMAGE                                    COMMAND                  CREATED          STATUS                     PORTS     NAMES
4784536258ef   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   19 minutes ago   Exited (0) 8 minutes ago             mynginx1.6.pfa508zk017ijqi3fmathsflm
8a2c24420b8c   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   20 minutes ago   Up 20 minutes              80/tcp    mynginx1.2.vvl33vmrhtcqmc0fz1c3o4q1l
ae67ca47f38e   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   35 minutes ago   Up 35 minutes              80/tcp    mynginx1.1.iixqev6xqn2s489vs88hztvwa

docker rm mynginx1.6.pfa508zk017ijqi3fmathsflm
[root@es1 data]# docker rm mynginx1.6.pfa508zk017ijqi3fmathsflm
mynginx1.6.pfa508zk017ijqi3fmathsflm
[root@es1 data]# docker ps -a
CONTAINER ID   IMAGE                                    COMMAND                  CREATED          STATUS          PORTS     NAMES
8a2c24420b8c   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   20 minutes ago   Up 20 minutes   80/tcp    mynginx1.2.vvl33vmrhtcqmc0fz1c3o4q1l
ae67ca47f38e   192.168.1.11:443/myharbor/nginx:latest   "/docker-entrypoint.…"   36 minutes ago   Up 36 minutes   80/tcp    mynginx1.1.iixqev6xqn2s489vs88hztvwa

--删除swarm 服务
[root@es1 data]# docker service ps mynginx1
ID             NAME             IMAGE                                    NODE      DESIRED STATE   CURRENT STATE             ERROR     PORTS
iixqev6xqn2s   mynginx1.1       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 36 minutes ago              
vvl33vmrhtcq   mynginx1.2       192.168.1.11:443/myharbor/nginx:latest   es1       Running         Running 21 minutes ago              
yv9bc92jf8d2   mynginx1.3       192.168.1.11:443/myharbor/nginx:latest   es2       Running         Running 21 minutes ago              
kvaf6j0dl5f6   mynginx1.5       192.168.1.11:443/myharbor/nginx:latest   es3       Running         Running 10 minutes ago              
2nlsm8gs6xpr    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es2       Shutdown        Complete 10 minutes ago             
di6imawfh5vp    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Shutdown 17 minutes ago             
pfa508zk017i   mynginx1.6       192.168.1.11:443/myharbor/nginx:latest   es1       Shutdown        Complete 9 minutes ago              
zimtcns18rlr    \_ mynginx1.6   192.168.1.11:443/myharbor/nginx:latest   es3       Shutdown        Shutdown 17 minutes ago         


[root@es1 ~]# docker service ps mynginx1
ID             NAME             IMAGE                                    NODE                        DESIRED STATE   CURRENT STATE               ERROR     PORTS
iixqev6xqn2s   mynginx1.1       192.168.1.11:443/myharbor/nginx:latest   es1                         Running         Running about an hour ago             
vvl33vmrhtcq   mynginx1.2       192.168.1.11:443/myharbor/nginx:latest   es1                         Running         Running 47 minutes ago                
yv9bc92jf8d2   mynginx1.3       192.168.1.11:443/myharbor/nginx:latest   es2                         Running         Running 47 minutes ago                
s123jmjp9g5p   mynginx1.5       192.168.1.11:443/myharbor/nginx:latest   es2                         Running         Running 2 minutes ago                 
kvaf6j0dl5f6    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   q6wuwac0yvp49ydfwzqn5n7no   Shutdown        Shutdown 2 minutes ago                
2nlsm8gs6xpr    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   es2                         Shutdown        Complete 37 minutes ago               
di6imawfh5vp    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   q6wuwac0yvp49ydfwzqn5n7no   Shutdown        Shutdown 43 minutes ago               
pfa508zk017i   mynginx1.6       192.168.1.11:443/myharbor/nginx:latest   es1                         Shutdown        Complete 36 minutes ago               
zimtcns18rlr    \_ mynginx1.6   192.168.1.11:443/myharbor/nginx:latest   q6wuwac0yvp49ydfwzqn5n7no   Shutdown        Shutdown 43 minutes ago     

--让ES2脱机集群并加入集群。
docker node rm q6wuwac0yvp49ydfwzqn5n7no -f 

[root@es1 ~]# docker service ps mynginx1
ID             NAME             IMAGE                                    NODE                        DESIRED STATE   CURRENT STATE               ERROR     PORTS
iixqev6xqn2s   mynginx1.1       192.168.1.11:443/myharbor/nginx:latest   es1                         Running         Running about an hour ago             
vvl33vmrhtcq   mynginx1.2       192.168.1.11:443/myharbor/nginx:latest   es1                         Running         Running 54 minutes ago                
cf7pto27b0h6   mynginx1.3       192.168.1.11:443/myharbor/nginx:latest   es3                         Running         Running 4 minutes ago                 
yv9bc92jf8d2    \_ mynginx1.3   192.168.1.11:443/myharbor/nginx:latest   j5qw78w2f6csdv1wvdwndm90u   Shutdown        Orphaned 2 minutes ago                
chn2uyxp8wvs   mynginx1.5       192.168.1.11:443/myharbor/nginx:latest   es3                         Running         Running 4 minutes ago                 
s123jmjp9g5p    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   j5qw78w2f6csdv1wvdwndm90u   Shutdown        Orphaned 2 minutes ago                
kvaf6j0dl5f6    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   q6wuwac0yvp49ydfwzqn5n7no   Shutdown        Shutdown 8 minutes ago                
2nlsm8gs6xpr    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   j5qw78w2f6csdv1wvdwndm90u   Shutdown        Complete 44 minutes ago               
di6imawfh5vp    \_ mynginx1.5   192.168.1.11:443/myharbor/nginx:latest   q6wuwac0yvp49ydfwzqn5n7no   Shutdown        Shutdown 50 minutes ago               
pfa508zk017i   mynginx1.6       192.168.1.11:443/myharbor/nginx:latest   es1                         Shutdown        Complete 43 minutes ago               
zimtcns18rlr    \_ mynginx1.6   192.168.1.11:443/myharbor/nginx:latest   q6wuwac0yvp49ydfwzqn5n7no   Shutdown        Shutdown 50 minutes ago        

7.总结 

Shutdown 状态的服务无法删除。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Swarm是Docker官方提供的容器编排工具,用于在多个Docker主机上部署和管理容器化应用程序。它允许您将多个Docker主机组成一个集群,并使用简单的命令进行应用程序的部署、扩展和管理。 下面是Docker Swarm部署的一般步骤: 1. 初始化Swarm:在一个Docker主机上执行`docker swarm init`命令来初始化Swarm集群。这个主机将成为Swarm的管理节点。 2. 加入节点:将其他Docker主机加入到Swarm集群,可以通过在其他主机上执行`docker swarm join`命令并提供管理节点的地址和令牌来实现。 3. 配置服务:使用Docker Compose或者Docker Stack来定义和配置您的应用程序服务。您可以指定容器的数量、网络设置、挂载卷等。 4. 部署服务:使用`docker stack deploy`命令来部署您的应用程序服务。这将在Swarm集群的多个节点上启动和管理容器。 5. 扩展服务:使用`docker service scale`命令来扩展或缩小服务的容器数量。Swarm会自动将容器分配到可用的节点上。 6. 更新服务:当应用程序需要更新时,可以通过更新服务的镜像版本或配置文件来进行更新。Swarm会逐步替换旧的容器,确保应用程序的高可用性。 7. 监控和管理:使用`docker service ls`命令来查看当前运行的服务列表,使用`docker service ps <service_name>`命令来查看特定服务的容器状态。您还可以使用其他监控工具来监控Swarm集群的健康状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值