replicated vs global mode - 每天5分鐘玩轉 Docker 容器(105)
阿新 • • 發佈:2017-12-13
docker容器教程swarmSwarm 可以在 service 創建或運行過程中靈活地通過
--replicas
調整容器副本的數量,內部調度器則會根據當前集群的資源使用狀況在不同 node 上啟停容器,這就是 service 默認的 replicated
mode。在此模式下,node 上運行的副本數有多有少,一般情況下,資源更豐富的 node 運行的副本數更多,反之亦然。除了 replicated
mode,service 還提供了一個 global
mode,其作用是強制在每個 node 上都運行一個且最多一個副本。
此模式特別適合需要運行 daemon 的集群環境。比如要收集所有容器的日誌,就可以 global
mode 創建 service,在所有 node 上都運行
gliderlabs/logspout
容器,即使之後有新的 node 加入,swarm 也會自動在新 node 上啟動一個 gliderlabs/logspout
副本。
docker service create \
--mode global \
--name logspout \
--mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock \
gliderlabs/logspout
可以通過 docker service inspect
查看 service 的 mode。
這裏是 Global
,如果創建 service 時不指定,默認是 Replicated
。
無論采用 global mode 還是 replicated mode,副本運行在哪些節點都是由 Swarm 決定的,作為用戶我們有沒有可能精細控制 service 的運行位置呢?
下一節我們來解答這個問題。
書籍:
1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html
replicated vs global mode - 每天5分鐘玩轉 Docker 容器(105)