Docker群集模式:缩小节点并删除服务

对于给定服务t1, t2, ..., tk ,节点N1, N2, ...Nw有一组任务。

由于使用率较低,我不需要像k那样多的任务。 我只需要l任务( l < k )。

事实上,我不需要w节点,所以我想开始删除机器,并支付less。 每次拆下一台机器都可以。

每个服务都有自己的状态。 服务以复制模式启动。

1)我如何删除单个节点并强制docker swarm不重新创build相同数量的服务任务?

笔记:

  • 我可以确保没有工作重新路由到在特定节点上运行的任务,因此删除特定节点是安全的。
  • 这是最简单的解决scheme,假设在被移除的节点上服务k - l服务,我将以w - 1节点和l服务结束。

要么

2)如何从docker swarm中移除特定的容器(任务),并且保持服务副本的数量低于被移除的任务的数量?

笔记:

  • 我假设我已经删除了一个节点。 来自节点的服务被重新部署到其他节点。
  • 我监视自己没有交通的集装箱(任务) – >没有状态是需要维护的

要么

3)其他解决scheme?

回答你的问题

Q1->您可以简单地排空集群中的节点,以validation服务上的服务是否在其他节点上启动。 一旦完成,您可以安全地从群集中删除节点。 docker节点更新 – 可用性排水<>

Q2->您必须在启动服务时指定了副本计数,您可以将其缩小为较小的计数。

docker服务规模<> = <>