一尘不染

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

docker

我想知道如何配置此工具,使其从最小数量的节点开始,并在需要时增长到最大数量的节点。

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


阅读 586

收藏
2020-06-17

共1个答案

一尘不染

简短的答案 :目前尚无简便的方法可以使用Docker Swarm做到这一点。

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

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

如果要使用此条件,则需要确保监视资源的持续使用,否则基础架构会因资源使用的频繁和突然更改而产生并破坏节点。

您可以为集群中的计算机定义下限和上限,以使事物处于受控状态。

请注意,Swarm至少需要3个Manager节点(推荐5个)来维护分布式共识算法的仲裁。因此 ,建议的最小下限是5个节点
Agent随着资源逐渐被服务使用,您可以随节点扩展)。

在某种程度上,您还可以查看Docker
InfraKit
Terraform,以进行
基础结构自动化 和运行状况 监视

更新 :现在有一个有前途的跨平台自动缩放器,它支持Swarm Mode 任务自动缩放
Orbiter。尽管对于服务/机器自动缩放仍然没有现成的方法。

2020-06-17