08_drain a node on the swarm
生活随笔
收集整理的這篇文章主要介紹了
08_drain a node on the swarm
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在之前的小節,所有的節點的狀態都是運行著的可用狀態。swarm manager 可以分配任務給任意可用的節點。
有時候,你可能需要對某臺服務器進行維護,你需要配置某個節點為drain狀態,即排干該節點上面的所有運行的容器。drain狀態可以防止維護節點再收到 管理節點的指令。
它也意味著管理節點停止在該服務器上面運行任務,并把復制任務放到別的可用節點上面。
$?docker?node?ls ID???????????????????????????HOSTNAME??STATUS??AVAILABILITY??MANAGER?STATUS 1bcef6utixb0l0ca7gxuivsj0????worker2???Ready???Active 38ciaotwjuritcdtn9npbnkuz????worker1???Ready???Active e216jshn25ckzbvmwlnh5jr3g?*??manager1??Ready???Active????????Leader如果你不在運行redis3.0.7的鏡像,回滾到原來的redis3.0.6,你可以執行以下命令
$?docker?service?create?--replicas?3?--name?redis?--update-delay?10s?redis:3.0.6 c5uo6kdmzpon37mgj9mwglcfw$?docker?service?ps?redis NAME???????????????????????????????IMAGE????????NODE?????DESIRED?STATE??CURRENT?STATE redis.1.7q92v0nr1hcgts2amcjyqg3pq??redis:3.0.6??manager1?Running????????Running?26?seconds redis.2.7h2l8h3q3wqy5f66hlv9ddmi6??redis:3.0.6??worker1??Running????????Running?26?seconds redis.3.9bg7cezvedmkgg6c8yzvbhwsd??redis:3.0.6??worker2??Running????????Running?26?seconds當我們想要排干 worker1上面的容器,進行維護時
docker node update --availability drain <NODE-ID>?
docker?node?update?--availability?drain?worker1 worker1$?docker?node?inspect?--pretty?worker1 ID:38ciaotwjuritcdtn9npbnkuz Hostname:worker1 Status:State:ReadyAvailability:Drain ...snip...可以看到 ?
Availability:Drain$?docker?service?ps?redis NAME????????????????????????????????????IMAGE????????NODE??????DESIRED?STATE??CURRENT?STATE???????????ERROR redis.1.7q92v0nr1hcgts2amcjyqg3pq???????redis:3.0.6??manager1??Running????????Running?4?minutes redis.2.b4hovzed7id8irg1to42egue8???????redis:3.0.6??worker2???Running????????Running?About?a?minute\_?redis.2.7h2l8h3q3wqy5f66hlv9ddmi6???redis:3.0.6??worker1???Shutdown???????Shutdown?2?minutes?ago redis.3.9bg7cezvedmkgg6c8yzvbhwsd???????redis:3.0.6??worker2???Running????????Running?4?minutesswarm manager 會停止處于 drain狀態的節點上面的容器,并重新在可用的節點上面啟用該容器。
維護完畢,從drain狀態恢復回 ?active 狀態
$?docker?node?update?--availability?active?worker1 worker1$?docker?node?inspect?--pretty?worker1 ID:38ciaotwjuritcdtn9npbnkuz Hostname:worker1 Status:State:ReadyAvailability:Active ...snip...當你設置一個維護的節點重新回到 active 狀態時候,它能夠重新收到如下的任務分配:
服務更新擴容
滾動更新
當你設置別的節點為drain
當另外一個節點上面的任務運行失敗
轉載于:https://blog.51cto.com/binuu/1942412
總結
以上是生活随笔為你收集整理的08_drain a node on the swarm的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MVC 之 Partial View 用
- 下一篇: JavaScript匿名函数以及在循环中