擴(縮)容服務
- 擴容服務
Service還提供了復制(類似kubernetes里的副本)功能。可以通過 docker service scale 命令來設置服務中容器的副本數:
docker service scale masl=4
和創建服務一樣,增加scale數之后,將會創建新的容器,這些新啟動的容器也會經歷從准備到運行的過程,過一分鍾左右,服務應該就會啟動完成,這時候可以再來看一下 masl 服務中的容器
可以看到,之前masl
容器在manager-node和node1節點上各有一個實例,而現在又增加了2個實例。
特別需要清楚的一點:
如果一個節點宕機了(即該節點就會從swarm集群中被踢出),則Docker應該會將在該節點運行的容器,調度到其他節點,以滿足指定數量的副本保持運行狀態。
比如:
將node1宕機后或將node1的docker服務關閉,那么它上面的task實例就會轉移到別的節點上。當node1節點恢復后,它轉移出去的task實例不會主動轉移回來,
只能等別的節點出現故障后轉移task實例到它的上面。使用命令
"docker node ls"
,發現node1節點已不在swarm集群中了。
在 node1 節點上關閉docker服務:
systemctl stop docker
過1分鍾左右后,在 manager-node 節點上查看服務:
發現,node1節點關閉后,它上面之前的兩個task任務已經轉移到 manager-node 節點上了。
- 縮容服務
docker service scale masl=2
發現,有2個task已經關閉了.
除了上面使用scale進行容器的擴容或縮容之外,還可以使用docker service update 命令。 可對 服務的啟動 參數 進行 更新/修改。
[root@manager-node ~]# docker service update --replicas 3 masl masl
- 刪除服務
把所有節點上的所有容器(task任務實例)全部刪除了
docker service rm masl