码头群中的多个标签放置约束 [英] Multiple label placement constraints in docker swarm

查看:32
本文介绍了码头群中的多个标签放置约束的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我给出多个标签放置约束并部署堆栈时,服务没有在提到的任何一个约束下运行。

例如:

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
现在,应该可以在两台服务器上运行该服务。但该服务根本没有启动。

推荐答案

该配置发生的情况是,您尝试部署到标签type同时为"test""prod"的服务器。这是行不通的。

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

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

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

constraints:
    - node.labels.foo == bar

这篇关于码头群中的多个标签放置约束的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆