泊坞窗群中的多个标签放置约束

时间:2018-07-12 06:28:22

标签: docker docker-swarm docker-swarm-mode docker-stack

当我给出多个标签放置约束并部署堆栈时,服务未在上述两个约束中运行。

例如:

deploy:
    mode: global
    placement: 
        constraints: 
            - node.labels.type == test  
            - node.labels.type == prod
    restart_policy:
        condition: on-failure

但是,如果我仅给出一个约束(任何约束),则它在该标签节点中起作用。

我见过同样的here。区别在于使用了两种约束(节点类型和标签)。但是我只使用了一种(标签)。

是否允许使用相同类型的约束。如果是使用方法。

更新

例如:

deploy:
    mode: global
    placement: 
        constraints: 
            - node.hostname == server1  
            - node.hostname == server2
    restart_policy:
        condition: on-failure

现在,这将在两台服务器上运行该服务。但是该服务并非完全启动。

1 个答案:

答案 0 :(得分:0)

该配置会导致您尝试部署到标签type"test""prod"(两者都不是)的服务器上。那是行不通的。

如果您在其他地方需要这些"test""prod"标签,则可以选择创建第三个标签,例如"foo"

docker node update --label-add foo=bar NODE

然后您可以在约束中使用它:

constraints:
    - node.labels.foo == bar