Docker Swarm如何实现负载均衡?

时间:2016-10-05 15:43:00

标签: docker docker-swarm

我有一个由docker swarm join命令

启动的10个Swarm节点的集群

如果我想通过

将docker实例扩展为15
docker service create --replicas 15 

docker swarm如何知道启动容器的位置?

是循环还是考虑到计算资源(使用了多少cpu / mem)?

1 个答案:

答案 0 :(得分:3)

当您在Swarm模式下创建服务或扩展服务时,scheduler上的Elected Leader(其中一个管理员)将选择一个节点来运行服务。目前领导者有3种策略。

  • 扩展
  • binpack
  • 随机

spreadbinpack策略根据节点的可用CPU,RAM以及它拥有的容器数来计算排名。 random策略不使用任何计算。它随机选择一个节点,主要用于调试。

spread策略下,Swarm会针对容器数量最少的节点进行优化。 binpack策略使Swarm针对包装最多的节点进行优化。

Swarm默认使用spread。 请记住,您也可以Constraint特定节点上的容器。

无法在泊坞版1.12.1(最新版本到发布日期)中设置策略