我可以在 docker 堆栈文件的约束中使用两个主机名吗?

can I use two hostname in my constraints on docker stack file?

我有一个堆栈文件,我试图告诉它使用我提供的两个主机名之一。这可能吗?该服务不是从这些变量开始的,但是,当至少删除其中一个变量时,它会起作用。感谢您的帮助!

堆栈文件:

deploy:
    placement:
        constraints:
            - node.hostname == myhost1
            - node.hostname == myhost2

放置约束是 AND 链接的。

不过,您可以将节点标签添加到两个主机,并将节点标签用作放置约束。我使用标签“mycustomlabel=true”来说明用法。

在管理器节点上:

docker node update --label-add mycustomlabel=true myhost1
docker node update --label-add mycustomlabel=true myhost2

然后使用节点标签作为放置约束:

deploy:
    placement:
        constraints:
            - node.labels.mycustomlabel == true

当然,标签可以有您选择的键=值。一个节点可以有多个节点标签。