建筑设计网站,软件排名工具,广告制作商,响应式网站怎么做才实用在之前的小节#xff0c;所有的节点的状态都是运行着的可用状态。swarm manager 可以分配任务给任意可用的节点。有时候#xff0c;你可能需要对某台服务器进行维护#xff0c;你需要配置某个节点为drain状态#xff0c;即排干该节点上面的所有运行的容器。drain状态可以防… 在之前的小节所有的节点的状态都是运行着的可用状态。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