【发布时间】:2017-03-06 11:43:49
【问题描述】:
我正在使用 docker-compose 文件版本 3 及其部署密钥来运行 swarm(docker 版本 1.13),我想复制一个服务以使其再次恢复单节点故障。
但是,当我添加这样的部署部分时:
deploy:
replicas: 2
在我的四节点集群中,有时我会在同一个节点上安排两个副本。我缺少的是在不同节点上安排两个实例的约束。
我知道我可以使用 global 模式,但这会在每个节点上运行一个实例,即在我的情况下是四个实例而不是两个。
是否有一种简单的方法可以以通用方式指定此约束,而无需使用global 和标签的组合来阻止其他实例?
编辑:再次尝试后,我发现这次容器要安排在不同的节点上。我开始怀疑我是否设置了'node.hostname == X' 约束。
编辑 2:在另一个服务更新后 - 并且没有任何放置限制 - 服务再次被安排在同一节点上(如 ManoMarks Visualizer 所示):
【问题讨论】:
标签: docker docker-compose docker-swarm