©
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
在本教程的前几个步骤中,所有节点都在ACTIVE
可用状态下运行。swarm manager可以将任务分配给任何ACTIVE
节点,所以到现在为止所有节点都可以接收任务。
有时,例如计划的维护时间,您需要将节点设置为DRAIN
可用性。DRAIN
可用性阻止节点从群管理器接收新任务。这也意味着管理器停止在节点上运行的任务,并在具有ACTIVE
可用性的节点上启动副本任务。
如果您还没有,请打开终端并将ssh放入运行管理器节点的机器中。例如,本教程使用名为的计算机manager1
。
确认您的所有节点都可用。$ docker节点ls ID 主机名状态可用性管理器状态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如何将任务分配给不同节点:$ docker service ps redis名称映像节点期望状态当前状态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管理器向每个节点分配一个任务。您可能会看到环境中的节点之间的任务分布不同。
运行docker node update --availability drain <NODE-ID>
以排除已分配任务的节点:docker节点更新 - 可用性drain worker1 worker1
检查点,检查其可用性:$搬运工节点检查--pretty worker1 ID:38ciaotwjuritcdtn9npbnkuz主机名:worker1状态:状态:随时可用:漏...略...沥干节点显示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管理器通过结束任务来维护所需的状态在具有Drain
可用性的节点上创建具有可用性的节点上的新任务Active
。
运行docker node update --availability active <NODE-ID>
以将已耗尽的节点返回到活动状态:$ docker node update --availability active worker1 worker1
检查节点以查看更新的状态:$ docker节点检查--pretty worker1 ID:38ciaotwjuritcdtn9npbnkuz主机名:worker1状态:状态:就绪可用性:活动... snip ...当您将节点设置回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
了解如何使用群模式路由网格。
教程,集群管理,群集,服务,流失(tutorial, cluster management, swarm, service, drain)