Docker Swarm如何进行负载均衡?

7

我有一个由docker swarm join命令启动的10个Swarm节点集群。

如果我想通过以下方式将docker实例扩展到15:

docker service create --replicas 15 

Docker Swarm如何知道在哪里启动容器?

它是轮询还是考虑计算资源(使用了多少CPU /内存)?

1个回答

6
当您创建Swarm模式下的服务或对其进行扩展时,调度程序会在选举领导者(其中之一是管理者)上选择一个节点来运行该服务。目前,领导者可用三种策略。
  • spread
  • binpack
  • random
spreadbinpack策略根据节点的可用CPU、RAM以及它所含容器数量计算排名。而random策略不需要计算,它随机选择一个节点,主要用于调试。
spread策略下,Swarm最优化地考虑容器数最少的节点。而binpack策略则会使Swarm最优化地考虑最紧凑的节点。
Swarm默认使用spread策略。 请注意,您也可以将容器约束在特定的节点上。 在docker版本1.12.1(发布日期最新版本)中不可能设置策略。

我在官方网站上哪里可以找到这个文档? - Damon Yuan
请看这里:https://github.com/docker/docker.github.io/blob/master/swarm/scheduler/strategy.md - Farhad Farahi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接