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