繁体   English   中英

Docker Swarm如何实现负载均衡?

[英]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种策略可供使用。

  • 传播
  • binpack
  • 随机

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

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

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

在docker版本1.12.1(最新版本到发布日期)中设置策略是不可能的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM