我有:
docker-compose.yml
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 stack deploy -c docker-compose.yml server:
结果是哪一个?
如果是2,我如何使用码头群像1一样部署?我需要使用码头群,因为我也使用码头网络覆盖。
如果是1,那么我的服务是如何分布的?是否“平均”分布?如果是这样的话,那么从哪个角度来看,它是“平均”分布的呢?
发布于 2017-09-28 07:03:50
Docker群具有一定的逻辑,用于决定哪些服务在哪个节点上运行。现在它可能是你所期望的100%,但他们是聪明的人,在这方面工作,并可能考虑的事情,你没有(如CPU负载,可用的内存.)
目标是均匀地分配负载,就像示例1一样。如果某些服务由于某些原因不能在一个节点上启动(比如您使用私有注册表,但没有指定堆栈部署中的注册表-auth),那么这些服务都将在那些在其他节点上失败后运行它们的节点上启动。
根据我的个人经验,我可以告诉你,它很好地将任务分散到了群体中,但并不能保证哪一项服务会在哪里结束。
如果要强制在哪里运行服务,请使用约束。
https://stackoverflow.com/questions/46462518
复制相似问题