码头群中的多个标签放置约束 [英] Multiple label placement constraints in docker swarm
本文介绍了码头群中的多个标签放置约束的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我给出多个标签放置约束并部署堆栈时,服务没有在提到的任何一个约束下运行。
例如:
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屋!
查看全文