限制swarm每个节点创建超过X个容器的数量

时间:2017-09-27 01:37:45

标签: docker docker-machine docker-swarm

是否有任何限制swarm创建例如每个工人20个容器的数量。那么,一个工人不会有超过20个容器以获得更好的服务质量(服务质量),这也可以防止过度使用主机的资源?

感谢

3 个答案:

答案 0 :(得分:2)

对于docker-ce 19.03+,您可以简单地使用--replicas-max-per-node选项创建/更新服务:

# create service with replicas-max-per-node=10
docker service create --replicas=100 --replicas-max-per-node=10 --name your_service_name your_image_name

# update service with replicas-max-per-node=20
docker service update --replicas-max-per-node=20 your_service_name

read more

答案 1 :(得分:1)

实际上没有。

Github issue正在谈论它。

答案 2 :(得分:1)

您不能完全说出每个节点“限制为20个容器”。如果您遇到内存问题,可以考虑在堆栈文件中使用限制和保留。如果没有足够的内存,这将告诉调度程序不要在节点上调度容器。您还可以设置CPU预留/限制,但这似乎不会影响计划。

compose上的此链接有助于了解限制和保留https://docs.docker.com/compose/compose-file/#resources

  my-java-service:
    image: yourcompany.com/my-java-service:1.1.0
    environment:
      - JAVA_OPTS=-Xmx4096m -Xms4096m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:-TieredCompilation -XX:+ParallelRefProcEnabled
    deploy:
      mode: replicated
      placement:
        constraints:
          - node.labels.env.lifecyle==prod
      replicas: 40
      resources:
        reservations:
          memory: 5120M
      update_config:
        delay: 1m
        parallelism: 1
      restart_policy:
        condition: none