Skip to main content
 首页 » 编程设计

docker之如何在 docker swarm 上配置自动缩放

2024年09月07日29落叶无声

我想知道如何配置此工具以从最少数量的节点开始,并在需要时增加到最多数量的节点。

我应该使用其他工具还是 docker swarm 可以为我解决这个问题?

请您参考如下方法:

简答 :目前没有简单的方法可以用 Docker Swarm 做到这一点。

Docker Swarm(或 Swarm 模式)不支持 自动缩放 开箱即用的机器。您需要使用另一种解决方案,例如 docker-machine在您的基础架构上创建机器(使用 docker)并将它们链接到现有的 Swarm 集群(使用 docker swarm join)。

这将涉及大量脚本,但其想法是监控集群的 CPU/内存/网络使用情况(使用 topmonit ),一旦超过阈值(比如总集群资源的 70%),您触发脚本调用 docker-machine扩展集群。使用相同的想法,您还可以按比例缩小 排水移除 节点(最好是 Agent 节点)来自现有的 swarm 集群,一旦您低于下限阈值。

如果您想使用此标准,您需要确保监控持续的资源使用情况,否则您的基础设施会因资源使用情况的频繁和突然变化而产生和破坏节点。

您可以为集群中的机器定义一个下限和一个上限,以控制一切。

请注意,Swarm 至少需要 3 Manager节点(推荐 5 个)来维护分布式共识算法的法定人数。所以最小推荐下限为 5 个节点 (您可以使用 Agent 节点进行扩展,因为服务正在逐步使用资源)。

某种程度上,你也可以看看Docker InfraKitTerraform用于基础设施自动化和健康监控。

Update: There is now a promising cross-platform autoscaler that supports Swarm Mode task auto-scaling: Orbiter. Although still nothing out-of-the-box yet for service/machine autoscaling.