首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

排空节点(引擎) | Drain a node (Engine)

在本教程的前几个步骤中,所有节点都在ACTIVE可用状态下运行。swarm manager可以将任务分配给任何ACTIVE节点,所以到现在为止所有节点都可以接收任务。

有时,例如计划的维护时间,您需要将节点设置为DRAIN可用性。DRAIN可用性阻止节点从群管理器接收新任务。这也意味着管理器停止在节点上运行的任务,并在具有ACTIVE可用性的节点上启动副本任务。

  1. 如果您还没有,请打开终端并将ssh放入运行管理器节点的机器中。例如,本教程使用名为的计算机manager1
  2. 确认您的所有节点都可用。$ docker节点ls ID 主机名状态可用性管理器状态1bcef6utixb0l0ca7gxuivsj0 worker2准备好活动38ciaotwjuritcdtn9npbnkuz worker1准备好活动e216jshn25ckzbvmwlnh5jr3g * manager1准备好主动领导者
  3. 如果您还没有运行redis滚动更新教程中的服务,请立即启动它:$ docker service create --replicas 3 --name redis --update-delay 10s redis:3.0.6 c5uo6kdmzpon37mgj9mwglcfw
  4. 运行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管理器向每个节点分配一个任务。您可能会看到环境中的节点之间的任务分布不同。
  5. 运行docker node update --availability drain <NODE-ID>以排除已分配任务的节点:docker节点更新 - 可用性drain worker1 worker1
  6. 检查点,检查其可用性:$搬运工节点检查--pretty worker1 ID:38ciaotwjuritcdtn9npbnkuz主机名:worker1状态:状态:随时可用:漏...略...沥干节点显示DrainAVAILABILITY
  7. 运行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
  8. 运行docker node update --availability active <NODE-ID>以将已耗尽的节点返回到活动状态:$ docker node update --availability active worker1 worker1
  9. 检查节点以查看更新的状态:$ docker节点检查--pretty worker1 ID:38ciaotwjuritcdtn9npbnkuz主机名:worker1状态:状态:就绪可用性:活动... snip ...当您将节点设置回Active可用性时,它可以接收新任务:
代码语言:txt
复制
- 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)

扫码关注腾讯云开发者

领取腾讯云代金券