Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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服务-节点上不同数量的副本_Docker_Docker Swarm - Fatal编程技术网

Docker服务-节点上不同数量的副本

Docker服务-节点上不同数量的副本,docker,docker-swarm,Docker,Docker Swarm,我有4个Docker节点,具有相同的CPU/内存配置。此外,我还有一个具有4个副本的服务,其中1个副本位于1个节点上 现在,我添加了具有更多CPU和内存配置的第5个节点。我通过命令缩放服务: docker服务规模webserver=5 现在我在5个节点上有5个副本。在这种情况下,我将向每个节点接收1/5的流量 例如:如果我将数字增加到8,接下来的3个将随机分布到所有节点。我如何设置此新(或百分比)副本必须仅分发到新服务器 通过约束,我只设置服务必须使用的节点,而不设置优先级 通过placeme

我有4个Docker节点,具有相同的CPU/内存配置。此外,我还有一个具有4个副本的服务,其中1个副本位于1个节点上

现在,我添加了具有更多CPU和内存配置的第5个节点。我通过命令缩放服务:

docker服务规模webserver=5

现在我在5个节点上有5个副本。在这种情况下,我将向每个节点接收1/5的流量

例如:如果我将数字增加到8,接下来的3个将随机分布到所有节点。我如何设置此新(或百分比)副本必须仅分发到新服务器

  • 通过约束,我只设置服务必须使用的节点,而不设置优先级
  • 通过placement pref,我只设置副本开始的优先级,而不设置副本的数量

Jan

你不能根据当前的规格来决定,但是

想到的快速解决方案是为节点添加标签,例如node.location.west和node.location.east

然后定义两个使用相同映像、环境等的服务

apps-node-west:
  deploy:
    replicas: 3
    placement:
      constraints:
        - node.location == west


apps-node-east:
  deploy:
    replicas: 4
    placement:
      constraints:
        - node.location == east
通过这种方式,您可以通过向节点发布标签、每个标签(位置等)添加多少节点到群中来决定

将其与“每个节点的最大副本数”(每个节点的最大副本数)相结合,可以确保特定标签(位置)中的节点没有过载