Swarm 指定工作節點運行服務副本:

在實際工作中我們有時希望指定一個工作節點,在特定的工作節點上運行特定的服務副本。

爲每個工作節點設置標籤,運行service時指定運行在特定標籤的工作節點。

docker node update --label-add env=leader leaderdocker node inspect leader--pretty

docker node update --label-add env=work workdocker node inspect work --pretty

刪除my_web的service,重新創建my_web的service,這裏指定創建的工作節點。

docker service rm my_webdocker service create \ --constraint node.labels.env==work \ --replicas 3 \ --name my_web \ --publish 8080:80 \ --mount "type=volume,volume-driver=rexray,source=web_data,target=/usr/local/apache2/htdocs" \ httpddocker service inspect my_web --pretty

查看服務的副本數

docker service ps my_web

前往工作節點,查看容器並測試,發現共享數據捲成功掛載

實現遷移,VirtualBox 由於 提供的 Rex-Ray 數據卷只能在一臺宿主機上使用所以你如果用了共享數據卷肯定無法遷移,如果沒有使用共享數據卷就可以正常遷移。

docker service update --constraint-rm node.labels.env==work my_webdocker service update --constraint-add node.labels.env==leader my_web

查看原文 >>
相關文章