如何在特定节点上创建 docker 服务,同时将其扩展到集群中的其他节点?

vai*_*pul 1 containers docker docker-swarm

我是码头工人的新手,因此我心里有这个天真的怀疑。我想要一种方法,每当我创建一个服务时,它都会在特定节点上创建,但如果我扩展它,它应该扩展到 docker swarm 中也存在的其他节点。我知道 --mode global 和 --constraints node.hostname!=node-1。但这并不能解决我的问题。如果我的问题不清楚,请告诉我,我会尽力以更好的方式解释。

Tar*_*ani 6

您需要使用placement-pref并有两个组,一个用于要运行它的节点,然后用于另一组中的其他节点。

$ docker service create \
  --replicas 1 \
  --name myservice \
  --placement-pref 'spread=node.labels.main_machine' \
  --placement-pref 'spread=node.labels.extended_machines' \
  <yourimage>
Run Code Online (Sandbox Code Playgroud)

现在你的第一个将继续main_machine,缩放后的将转到extended_machines

请参阅网址https://docs.docker.com/engine/reference/commandline/service_create/#specify-service-placement-preferences-placement-pref