Docker Swarm如何实现负载均衡?
我有一个通过docker swarm join
命令启动的10个Swarm节点集群
如果我想扩展docker实例到15通过
docker service create --replicas 15
docker工人怎么知道在哪里启动容器?
是循环还是考虑到计算资源(正在使用多lessCPU / MEM)?
当你创build一个服务或者在Swarm模式下进行扩展时, Elected Leader
(经理之一)上的scheduler
器会select一个节点来运行服务。 领导者目前有三种策略。
- 传播
- binpack
- 随机
spread
和binpack
策略根据节点的可用CPU,RAM和容器数来计算排名。 random
策略不使用计算。 它随机select一个节点,主要用于debugging。
在spread
策略下,Swarm优化容器数量最less的节点。 binpack
策略使Swarm针对最binpack
的节点进行优化。
Swarm默认使用传播。 请记住,您也可以在特定节点上Constraint
容器。
在Docker版本1.12.1(发布date的最新版本)中设置策略是不可能的,