[英]How does Docker Swarm load balance?
我有一个由10个Swarm节点组成的集群,通过docker swarm join
命令启动
如果我想将docker实例扩展为15
docker service create --replicas 15
docker swarm如何知道启动容器的位置?
它是循环还是考虑到计算资源(使用了多少cpu / mem)?
当您在Swarm模式下创建服务或扩展服务时, Elected Leader
上的scheduler
(其中一个管理器)将选择一个节点来运行该服务。 目前领导者有3种策略可供使用。
spread
和binpack
策略根据节点的可用CPU,RAM以及它拥有的容器数来计算排名。 random
策略不使用计算。 它随机选择一个节点,主要用于调试。
在spread
策略下,Swarm优化容器数量最少的节点。 binpack
策略使Swarm针对最多打包的节点进行优化。
Swarm默认使用spread。 请记住,您也可以在特定节点上Constraint
容器。
在docker版本1.12.1(最新版本到发布日期)中设置策略是不可能的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.