我有:
inv(Qow)
如果我运行Qow
:
swarm管理器(service1),swarm node1(service2),swarm node2(service3)
群体管理器(service1,service2,service3),swarm node1(service1,service2,service3),swarm node3(service1,service2,service3)
结果是哪一个?
如果是services:
service1:
ports:
- 8888:8888
environment:
- ADDITIONAL_NODES=service2:8889,service3:8890
service2:
ports:
- 8889:8889
environment:
- ADDITIONAL_NODES=service1:8888,service3:8890
service3:
ports:
- 8890:8890
environment:
- ADDITIONAL_NODES=service1:8888,service2:8889
,我如何使用docker swarm部署docker stack deploy -c docker-compose.yml server
?我需要使用docker swarm,因为我还使用了docker网络覆盖。
如果是2
,那么我的服务如何分发?它是“平均”分布的吗?如果是真的那么它在什么角度“平均”分布?
答案 0 :(得分:1)
Docker swarm有一些逻辑,用于决定哪些服务在哪些节点上运行。它现在可能是你所期望的100%,但他们是聪明的人,并且可能会考虑你没有做的事情(例如CPU负载,可用内存......)
目标是均匀地分散负载,就像你的例子一样1.如果某些服务由于某种原因无法在一个节点上启动(就像你使用私有注册表但没有在堆栈中指定--with-registry-auth然后,服务将全部从那些可以在其他节点上失败后运行它们的节点开始。
根据个人经验,我可以告诉你,它可以很好地传播整个群体的任务,但不能保证服务的最终位置。
如果要强制服务运行的地方使用约束。