将Docker Swarm模式服务放置限制为;不是这个节点“;
我有一个Docker swarm模式设置,节点看起来像这样将Docker Swarm模式服务放置限制为;不是这个节点“;,docker,docker-stack,Docker,Docker Stack,我有一个Docker swarm模式设置,节点看起来像这样 群管理器 swarm-worker-01 swarm-worker-02 swarm worker用于我的特殊应用程序 swarm-worker-for-my-special-application-02 swarm manager承载一个反向代理,worker节点承载一堆或多或少不相关的小应用程序(我们是一家小型设计机构) 在大多数情况下,这些应用程序的带宽都很低,只需嗡嗡作响,彼此之间不会产生干扰。但是,我们现在有了一个新的
- 群管理器
- swarm-worker-01
- swarm-worker-02
- swarm worker用于我的特殊应用程序
- swarm-worker-for-my-special-application-02
swarm manager
承载一个反向代理,worker节点承载一堆或多或少不相关的小应用程序(我们是一家小型设计机构)
在大多数情况下,这些应用程序的带宽都很低,只需嗡嗡作响,彼此之间不会产生干扰。但是,我们现在有了一个新的应用程序(我们称之为特殊应用程序
),它希望能够部署到任何工作节点(因为它是一个高流量应用程序),但我想限制除了特殊应用程序
之外的其他服务部署到这些节点
所以,我想要这样的东西:
- swarm-worker-01(接受任何容器)
- swarm-worker-02(接受任何容器)
- swarm worker用于我的特殊应用程序(仅接受
)特殊应用程序
- swarm-worker-for-my-special-application-02(仅接受特殊应用程序)
docker节点更新--label add app constraint=special application swarm worker for my special application
,然后在我的特殊应用程序上部署:
deploy:
placement:
constraints:
- node.labels.app-constraint == special-application
在我的其他应用程序上:
deploy:
placement:
constraints:
- node.labels.app-constraint != special-application
然而,这有两个缺点。一个是我的特殊应用程序
只会部署在特殊节点上,而不是所有节点上。第二个问题是,我必须检查我的(几十个)其他服务,并在有限制的情况下重新部署
基本上,我希望
特殊应用程序
能够部署到任何地方,同时让某些工作人员只接受特殊应用程序的部署,实际上为他们保留容量。您找到了解决方案吗?