8.Swarm创建维护和水平扩展Service

こ雲淡風輕ζ 提交于 2020-11-02 21:54:17

 

创建service

docker service create --name demo busybox sh -c "while true;do sleep 3600;done"

查看service,此时只有一个副本 replicas 1/1

docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
qbpicc7rvm49        demo                replicated          1/1                 busybox:latest 

查看service详细信息

docker service ps demo
ID                  NAME                IMAGE               NODE                    DESIRED STATE       CURRENT STATE                ERROR               PORTS
nlgymox7pt59        demo.1              busybox:latest      localhost.localdomain   Running             Running about a minute ago 

设置service副本数为5

docker service scale demo=5

再次查看service,次数副本数 replicas 5/5

docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
qbpicc7rvm49        demo                replicated          5/5                 busybox:latest  

发现启动了5个service副本,分布在3个worker node上

docker service ps demo
ID                  NAME                IMAGE               NODE                    DESIRED STATE       CURRENT STATE            ERROR                              PORTS
nlgymox7pt59        demo.1              busybox:latest      localhost.localdomain   Running             Running 6 minutes ago                                       
wjnahehppsvu        demo.2              busybox:latest      localhost.localdomain   Running             Running 2 minutes ago
ogojxvke7t9b        demo.3              busybox:latest      localhost.localdomain   Running             Running 3 minutes ago                                       
dweehxcozoku        demo.4              busybox:latest      localhost.localdomain   Running             Running 2 minutes ago
1ix2fdj39m03        demo.5              busybox:latest      localhost.localdomain   Running             Running 2 minutes ago

我们去其中一个worker node上删除一个service副本

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
a8661d168e78        busybox:latest      "sh -c 'while true;d…"   4 minutes ago       Up 4 minutes                            demo.3.ogojxvke7t9bza62haisw3as2
2f800599e183        busybox:latest      "sh -c 'while true;d…"   8 minutes ago       Up 8 minutes                            demo.1.nlgymox7pt59vrdj7lfjk8e4b

docker rm -f 2f800599e183

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
a8661d168e78        busybox:latest      "sh -c 'while true;d…"   38 minutes ago      Up 38 minutes                           demo.3.ogojxvke7t9bza62haisw3as2

然后再回到swarm manager节点上,查看service副本数变成4个,但是短暂时间后,又变回5个

docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
qbpicc7rvm49        demo                replicated          5/5                 busybox:latest 

再查看demo副本详细信息,demo.1确实是被删除过,但是在swarm manager的管理下,某个workder node又开启了一个service的副本,保证service的副本数是有效的。

docker service ps demo
ID                  NAME                IMAGE               NODE                    DESIRED STATE       CURRENT STATE             ERROR                              PORTS
z5vhrcrec1d4        demo.1              busybox:latest      localhost.localdomain   Running             Running 6 minutes ago
nlgymox7pt59         \_ demo.1          busybox:latest      localhost.localdomain   Shutdown            Failed 6 minutes ago      "task: non-zero exit (137)"         
wjnahehppsvu        demo.2              busybox:latest      localhost.localdomain   Running             Running 44 minutes ago   
ogojxvke7t9b        demo.3              busybox:latest      localhost.localdomain   Running             Running 44 minutes ago                                       
dweehxcozoku        demo.4              busybox:latest      localhost.localdomain   Running             Running 44 minutes ago 
1ix2fdj39m03        demo.5              busybox:latest      localhost.localdomain   Running             Running 44 minutes ago          

我们要删除service,需要在swarm manager节点上

docker service rm demo
demo

docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!