在除管理器之外的每个节点上聚集服务

时间:2018-09-12 12:09:09

标签: docker-swarm

我有一群由一名经理和多名工人组成的团队。

我希望每个节点只(仅一次)部署一个特定服务,但只能部署在工作服务器上。 管理器仍在运行其他服务。

我发现的内容不符合我的需求:

  • mode: global做我想做的“每个容器一次”,但不排除管理者。
  • mode: replicated replicas: 6 placement: constraints: - node.role == worker限制了工作服务器,但是使用该解决方案,一个节点上可以有多个副本。而且--max-replicas-per-node还不存在。

  • docker node update --availability drain manager1从工作人员中删除了经理,但这不可能,因为我的经理应该运行其他服务。

1 个答案:

答案 0 :(得分:0)

您可以将第一个解决方案与第二个解决方案结合起来。这样的事情在我的环境中对我很有效:

mode: global placement: constraints: - node.role == worker

唯一的问题是,您需要为在其上运行服务的每个节点分配标签(worker)。