Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Docker Swarm模式服务放置限制为;不是这个节点“;_Docker_Docker Stack - Fatal编程技术网

将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节点承载一堆或多或少不相关的小应用程序(我们是一家小型设计机构) 在大多数情况下,这些应用程序的带宽都很低,只需嗡嗡作响,彼此之间不会产生干扰。但是,我们现在有了一个新的

我有一个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(仅接受特殊应用程序)
一种(种类)解决方案是为特殊节点提供一个标签,例如
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
然而,这有两个缺点。一个是我的
特殊应用程序
只会部署在特殊节点上,而不是所有节点上。第二个问题是,我必须检查我的(几十个)其他服务,并在有限制的情况下重新部署


基本上,我希望
特殊应用程序
能够部署到任何地方,同时让某些工作人员只接受特殊应用程序的部署,实际上为他们保留容量。

您找到了解决方案吗?