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



