除管理器外的每个节点上的 Swarm 服务
Swarm service on every node but the manager
我有一个 swarm 运行 一个经理和多个工人。
我希望每个节点部署一次(且仅一次)特定服务,但仅限于工作人员。
经理还有运行其他服务。
我发现的内容不符合我的需要:
mode: global
为 'once per container' 做我想做的,但这并不排除经理。
mode: replicated
replicas: 6
placement:
constraints:
- node.role == worker
对工作人员的限制,但使用该解决方案,一个节点上可能有多个副本。 --max-replicas-per-node还不存在。
docker node update --availability drain manager1
将经理从工人中移除,但这也不可能,因为我的经理应该 运行 其他服务。
您可以将第一个解决方案与第二个解决方案结合起来。在我的环境中,这样的东西对我来说效果很好:
mode: global
placement:
constraints:
- node.role == worker
唯一的问题是您需要为每个需要 运行 服务的节点分配一个标签 (worker
)。
我有一个 swarm 运行 一个经理和多个工人。
我希望每个节点部署一次(且仅一次)特定服务,但仅限于工作人员。 经理还有运行其他服务。
我发现的内容不符合我的需要:
mode: global
为 'once per container' 做我想做的,但这并不排除经理。mode: replicated replicas: 6 placement: constraints: - node.role == worker
对工作人员的限制,但使用该解决方案,一个节点上可能有多个副本。 --max-replicas-per-node还不存在。docker node update --availability drain manager1
将经理从工人中移除,但这也不可能,因为我的经理应该 运行 其他服务。
您可以将第一个解决方案与第二个解决方案结合起来。在我的环境中,这样的东西对我来说效果很好:
mode: global
placement:
constraints:
- node.role == worker
唯一的问题是您需要为每个需要 运行 服务的节点分配一个标签 (worker
)。