Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker swarm模式:缩小节点并删除服务_Docker_Autoscaling_Docker Swarm_Docker Swarm Mode - Fatal编程技术网

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

Docker swarm模式:缩小节点并删除服务,docker,autoscaling,docker-swarm,docker-swarm-mode,Docker,Autoscaling,Docker Swarm,Docker Swarm Mode,我已经为给定的服务设置了一组任务t1、t2、…、tk跨节点N1、N2、…Nw 由于使用率较低,我不需要像k那样多的任务。 我只需要l任务(l不需要维护任何状态 或 3)还有其他解决方案吗?回答您的问题 Q1->您可以简单地排空集群中的节点,以验证服务上的服务是否在其他节点上启动。一旦他们这样做了,你就可以安全地将节点从swarm集群中移除。 docker节点更新--可用性消耗 Q2->您必须在启动服务时指定副本计数,您只需将其扩展到较低的计数即可 docker service scale=要使

我已经为给定的服务设置了一组任务
t1、t2、…、tk
跨节点
N1、N2、…Nw

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

事实上,我不需要
w
节点,所以我想开始删除机器并支付更少的费用。一次卸下一台机器即可。

每个服务都有自己的状态。 这些服务是在中启动的

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

注:

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

2)如何从docker swarm中删除特定容器(任务),并将服务副本的数量减少到删除任务的数量

注:

  • 我假设我已经删除了一个节点。该节点的服务已重新部署到其他节点
  • 我监控自己的容器(任务),这些容器不提供任何流量->不需要维护任何状态


3)还有其他解决方案吗?

回答您的问题

Q1->您可以简单地排空集群中的节点,以验证服务上的服务是否在其他节点上启动。一旦他们这样做了,你就可以安全地将节点从swarm集群中移除。 docker节点更新--可用性消耗

Q2->您必须在启动服务时指定副本计数,您只需将其扩展到较低的计数即可


docker service scale=

要使用一个具体示例,假设您有3个节点和9个任务。现在,您希望转到2个节点和6个任务,而无需进行任何不必要的重新调度(例如,2个模式和9个任务,或3个模式和6个任务)

要缩小服务规模并同时“排空”节点,可以执行以下操作:

docker service update --replicas 6 --constraint-add "node.hostname != node_to_be_removed_hostname" service_name
如果您的现有设置是平衡的,这只会导致删除主机上运行的任务


在此之后,您可以继续(docker节点更新)对节点进行排水,将其从群中移除,并移除刚刚添加的约束

我忘了提到这些服务是永无止境的服务。他们不会被重新安排。我假设你实施了Docker Swarm。我目前正在使用Kubernetes,如果节点上没有运行活动进程,则需要10分钟来缩小规模。这对我来说不起作用,我正在寻找一种可以立即缩小的东西。Docker swarm是否也有类似的限制,或者缩小规模是否有效?