1. 程式人生 > >replicated vs global mode - 每天5分鐘玩轉 Docker 容器(105)

replicated vs global mode - 每天5分鐘玩轉 Docker 容器(105)

docker容器教程swarm

Swarm 可以在 service 創建或運行過程中靈活地通過 --replicas 調整容器副本的數量,內部調度器則會根據當前集群的資源使用狀況在不同 node 上啟停容器,這就是 service 默認的 replicated mode。在此模式下,node 上運行的副本數有多有少,一般情況下,資源更豐富的 node 運行的副本數更多,反之亦然。

除了 replicated mode,service 還提供了一個 globalmode,其作用是強制在每個 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)