【发布时间】:2017-10-11 17:27:23
【问题描述】:
我为给定服务t1, t2, ..., tk 跨节点N1, N2, ...Nw 设置了一组任务。
由于使用率较低,我不需要像k 那么多的任务。
我只需要 l 任务 (l < k)。
事实上,我不需要w 节点,所以我想开始移除机器并支付更少的费用。一次移除一台机器没问题。
每个服务都有自己的状态。 服务在replicated mode启动。
1) 如何移除单个节点并强制 docker swarm 不为服务重新创建相同数量的任务?
注意事项:
- 我可以确保没有工作被重新路由到特定节点上运行的任务,因此删除特定节点是安全的。
- 这是最简单的解决方案,我最终会得到
w - 1节点和l服务,假设在删除的节点上提供了k - l服务。
或
2) 如何从 docker swarm 中移除特定容器(任务),并通过移除任务的数量来降低服务的副本数?
注意事项:
- 我假设我已经删除了一个节点。该节点的服务已重新部署到其他节点。
- 我自己监控不提供流量的容器(任务) -> 不需要维护状态
或
3) 还有其他解决方案吗?
【问题讨论】:
-
我假设你实现了 Docker Swarm。我目前正在使用 Kubernetes,如果节点上没有运行活动进程,似乎需要 10 分钟才能缩减。这对我不起作用,我正在寻找可以立即缩小的东西。 Docker swarm 是否有类似的约束,或者缩减是否有效?
标签: docker autoscaling docker-swarm docker-swarm-mode