我有一群由一名经理和多名工人组成的团队。
我希望每个节点只(仅一次)部署一个特定服务,但只能部署在工作服务器上。 管理器仍在运行其他服务。
我发现的内容不符合我的需求:
mode: global
做我想做的“每个容器一次”,但不排除管理者。 mode: replicated
replicas: 6
placement:
constraints:
- node.role == worker
限制了工作服务器,但是使用该解决方案,一个节点上可以有多个副本。而且--max-replicas-per-node还不存在。
docker node update --availability drain manager1
从工作人员中删除了经理,但这不可能,因为我的经理应该运行其他服务。
答案 0 :(得分:0)
您可以将第一个解决方案与第二个解决方案结合起来。这样的事情在我的环境中对我很有效:
mode: global
placement:
constraints:
- node.role == worker
唯一的问题是,您需要为在其上运行服务的每个节点分配标签(worker
)。