1. 程式人生 > >Swarm容器叢集部署與節點管理

Swarm容器叢集部署與節點管理

使用Swarm前提:
Docker版本1.12+
叢集節點之間保證TCP 2377(叢集管理)、TCP/UDP 7946(容器網路發現)和UDP 4789(Overlay網路)埠通訊

節點規劃:
作業系統:CentOS7.4_x64
Manager Worker
Manager 192.168.1.39

Worker01 192.168.1.40
Worker02 192.168.1.42

docker swarm COMMAND 管理Swarm

在192.168.1.39上:
管理節點初始化Swarm:

docker swarm init --advertise-addr
192.168.1.39

此時會生成一串加入叢集的命令:

docker swarm join --token SWMTKN-1-1fu2e5tl80ptxasw95l3l18il0pk5ns4o6augwmkdbyxz8gxj2-3ku5u2q94ckshrpky25f8rkya 192.168.1.39:2377

現在我們可以將命令複製到工作節點加入Swarm:

docker swarm join --token SWMTKN-1-XXX 192.168.0.211:2377

節點管理
建立一個副本數為1的busybox映象

docker service create -
-replicas 1 --name hello busybox ping baidu.com

其中ping baidu.com是代表保持busybox的容器程序一直在活動

顯示服務詳細資訊

docker service inspect --pretty hello # 易於閱讀顯示
docker service inspect hello # json格式返回

擴充套件服務例項數

docker service scale hello=3

檢視服務任務

docker service ls
docker service ps hello

只檢視running狀態的hello

docker service ps -f 'desired-state=running' hello

滾動更新服務

docker service create \
--replicas 3 \
--name redis \
--update-delay 10s \
--update-failure-action continue \
redis:3.0.6

update-delay 10s 代表更新時間間隔
update-failure-action continue 代表更新失敗繼續
更新版本:(update-parallelism 3 代表每次執行副本3個)

docker service update --update-parallelism 3 --image redis:3.0.7 redis

檢視更新後版本:

docker service ps -f 'desired-state=running' redis

回滾到上個版本:

docker service update --rollback redis

查看回滾後版本:

docker service ps -f 'desired-state=running' redis

其中比較完善的回滾策略:

建立服務時設定回滾策略

docker service create \
--name redis \
--replicas 10 \
--rollback-parallelism 2 \
--rollback-monitor 20s \
--rollback-max-failure-ratio .2 \
redis:3.0.6