?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
在本教程的前幾個步驟中,所有節(jié)點都在ACTIVE
可用狀態(tài)下運行。swarm manager可以將任務分配給任何ACTIVE
節(jié)點,所以到現(xiàn)在為止所有節(jié)點都可以接收任務。
有時,例如計劃的維護時間,您需要將節(jié)點設置為DRAIN
可用性。DRAIN
可用性阻止節(jié)點從群管理器接收新任務。這也意味著管理器停止在節(jié)點上運行的任務,并在具有ACTIVE
可用性的節(jié)點上啟動副本任務。
如果您還沒有,請打開終端并將ssh放入運行管理器節(jié)點的機器中。例如,本教程使用名為的計算機manager1
。
確認您的所有節(jié)點都可用。$ docker節(jié)點ls ID 主機名狀態(tài)可用性管理器狀態(tài)1bcef6utixb0l0ca7gxuivsj0 worker2準備好活動38ciaotwjuritcdtn9npbnkuz worker1準備好活動e216jshn25ckzbvmwlnh5jr3g * manager1準備好主動領導者
如果您還沒有運行redis
滾動更新教程中的服務,請立即啟動它:$ docker service create --replicas 3 --name redis --update-delay 10s redis:3.0.6 c5uo6kdmzpon37mgj9mwglcfw
運行docker service ps redis
以查看swarm manager如何將任務分配給不同節(jié)點:$ docker service ps redis名稱映像節(jié)點期望狀態(tài)當前狀態(tài)redis.1.7q92v0nr1hcgts2amcjyqg3pq redis:3.0.6 manager1運行運行26秒redis.2.7h2l8h3q3wqy5f66hlv9ddmi6 redis:3.0.6 worker1運行運行26秒redis.3.9bg7cezvedmkgg6c8yzvbhwsd redis:3.0.6 worker2運行運行26秒在這種情況下,swarm管理器向每個節(jié)點分配一個任務。您可能會看到環(huán)境中的節(jié)點之間的任務分布不同。
運行docker node update --availability drain <NODE-ID>
以排除已分配任務的節(jié)點:docker節(jié)點更新 - 可用性drain worker1 worker1
檢查點,檢查其可用性:$搬運工節(jié)點檢查--pretty worker1 ID:38ciaotwjuritcdtn9npbnkuz主機名:worker1狀態(tài):狀態(tài):隨時可用:漏...略...瀝干節(jié)點顯示Drain
了AVAILABILITY
。
運行docker service ps redis
以查看swarm管理器如何更新服務的任務分配redis
:$ docker service ps redis NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR redis.1.7q92v0nr1hcgts2amcjyqg3pq redis:3.0.6 manager1 Running Running Running 4分鐘redis.2.b4hovzed7id8irg1to42egue8 redis:3.0 .6 worker2正在運行運行大約一分鐘\ _ redis.2.7h2l8h3q3wqy5f66hlv9ddmi6 redis:3.0.6 worker1關機關機2分鐘前redis.3.9bg7cezvedmkgg6c8yzvbhwsd redis:3.0.6 worker2正在運行運行4分鐘swarm管理器通過結(jié)束任務來維護所需的狀態(tài)在具有Drain
可用性的節(jié)點上創(chuàng)建具有可用性的節(jié)點上的新任務Active
。
運行docker node update --availability active <NODE-ID>
以將已耗盡的節(jié)點返回到活動狀態(tài):$ docker node update --availability active worker1 worker1
檢查節(jié)點以查看更新的狀態(tài):$ docker節(jié)點檢查--pretty worker1 ID:38ciaotwjuritcdtn9npbnkuz主機名:worker1狀態(tài):狀態(tài):就緒可用性:活動... snip ...當您將節(jié)點設置回Active
可用性時,它可以接收新任務:
- during a service update to scale up- during a rolling update- when you set another node to `Drain` availability- when a task fails on another active node
了解如何使用群模式路由網(wǎng)格。
教程,集群管理,群集,服務,流失(tutorial, cluster management, swarm, service, drain)