我想知道如何配置此工具以从最少数量的节点开始,并在需要时增长到最大节点数.
我应该使用其他工具还是docker swarm解决这个问题?
简短的回答:目前使用Docker Swarm没有简单的方法.
Docker Swarm(或Swarm模式)不支持开箱即用的自动缩放机器.您需要使用另一种解决方案,比如docker-machine
在基础架构上创建计算机(使用docker)并将这些计算机链接到现有的Swarm集群(带docker swarm join
).
这将涉及大量脚本,但想法是监视集群的CPU /内存/网络使用情况(使用top
或monit
),一旦超出阈值(比如总集群资源的70%),就会触发调用docker-machine
扩展的脚本群集.使用相同的想法,您也可以通过在低于下限阈值时从现有群集群中排空和移除节点(最好是Agent
节点)来缩小.
如果要使用此条件,则需要确保监视持续的资源使用情况,否则您将使基础结构产生并破坏节点中资源使用的频繁和突然变化.
您可以为集群中的计算机定义下限和上限,以控制事物.
请注意,Swarm需要至少3个Manager
节点(建议5)才能维持Distributed Consensus算法的仲裁.因此,建议的最小下限是5个节点(Agent
随着资源逐渐被服务使用,您可以使用节点进行扩展).
在某种程度上,您还可以查看Docker InfraKit或Terraform进行基础架构自动化和运行状况监控.
更新:现在有一个很有前途的跨平台自动缩放器,支持Swarm模式任务自动缩放:Orbiter.虽然服务/机器自动缩放仍然没有任何开箱即用的功能.