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
- 我假设我已经删除了一个节点。该节点的服务已重新部署到其他节点
- 我监控自己的容器(任务),这些容器不提供任何流量->不需要维护任何状态
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是否也有类似的限制,或者缩小规模是否有效?