我想知道如何配置此工具,使其从最小数量的节点开始,并在需要时增长到最大数量的节点。
我应该使用其他工具还是docker swarm可以为我解决这个问题?
简短的答案 :目前尚无简便的方法可以使用Docker Swarm做到这一点。
Docker Swarm(或Swarm模式)不支持 自动缩放 机器。您需要为此使用另一种解决方案,例如docker- machine在基础架构上创建计算机(使用docker)并将它们链接到现有Swarm集群(使用docker swarm join)。
docker- machine
docker swarm join
这将涉及大量脚本编写,但是其想法是监视群集的CPU /内存/网络使用情况(使用top或monit),一旦超出阈值(例如占群集总资源的 70% ),则触发脚本调用docker-machine以进行扩展集群。使用您还可以通过按比例缩小同样的想法 排水 和 删除 节点(最好是Agent从现有的群群集节点),一旦你是低于下限阈值。
top
monit
docker-machine
Agent
如果要使用此条件,则需要确保监视资源的持续使用,否则基础架构会因资源使用的频繁和突然更改而产生并破坏节点。
您可以为集群中的计算机定义下限和上限,以使事物处于受控状态。
请注意,Swarm至少需要3个Manager节点(推荐5个)来维护分布式共识算法的仲裁。因此 ,建议的最小下限是5个节点 (Agent随着资源逐渐被服务使用,您可以随节点扩展)。
Manager
在某种程度上,您还可以查看Docker InfraKit或Terraform,以进行 基础结构自动化 和运行状况 监视 。
更新 :现在有一个有前途的跨平台自动缩放器,它支持Swarm Mode 任务自动缩放 :Orbiter。尽管对于服务/机器自动缩放仍然没有现成的方法。