我正在使用docker-compose文件版本3及其部署密钥来运行swarm(docker版本1.13),我想复制一个服务,以使其再次恢复单节点故障.
但是,当我添加这样的部署部分时:
deploy:
replicas: 2
在我的四节点集群中,我有时最终会在同一节点上安排两个副本.我缺少的是一个约束,它调度不同节点上的两个实例.
我知道我可以使用全局模式,但是会在每个节点上运行一个实例,即在我的情况下只有四个实例而不是两个实例.
是否有一种简单的方法以通用的方式指定此约束,而不必求助于全局和标签的组合来保持其他实例远离?
编辑:再次尝试后,我发现这次要在不同的节点上安排容器.我开始怀疑我是否有一个’node.hostname == X’约束.
编辑2:在另一次服务更新之后 – 并且没有任何放置限制 – 再次在同一节点上调度服务(如ManoMarks Visualizer所示):
最佳答案 您使用的是什么版本的docker?根据1.13中的这篇帖子,这类问题已得到纠正,请看看:
https://github.com/docker/docker/issues/26259#issuecomment-260899732
希望这能回答你的问题.