Docker swarm - 如何在 swarm 中的每个节点上复制服务

une*_*red 2 docker docker-compose docker-swarm

我想将堆栈部署到 docker swarm,我希望每个节点都运行给定的服务。

我查看了deploy.placement配置,发现最接近的选项是放置首选项spread=node.label.abc,它将在与标签匹配的节点上平均分配服务。然而,这需要始终更新副本计数以匹配节点数量。

有没有一种方法可以在所有节点上自动部署服务,而无需手动更新副本计数?

BMi*_*tch 5

有没有一种方法可以在所有节点上自动部署服务,而无需手动更新副本计数?

是的,以全局模式而不是复制模式部署您的服务。链接中的示例:

version: '3'
services:
  worker:
    image: dockersamples/examplevotingapp_worker
    deploy:
      mode: global
Run Code Online (Sandbox Code Playgroud)

这将在符合您的约束的每个节点上运行容器的单个实例。