Docker 如何限制特定节点的服务副本数?

Docker 如何限制特定节点的服务副本数?,docker,docker-swarm,Docker,Docker Swarm,用例: 我有两个节点,一个机器a有1gb的内存,另一个机器B有4GB的内存 我部署了一个带有5个Java容器副本的服务,这些容器使用1GB的ram 机器A上有1个Java容器,机器B上有4个Java容器 如果我关闭machineB,如何阻止machineA启动4 Java 机器没有足够的RAM来启动这些容器,它不但不会提高可用性,反而会降低可用性。目前还没有此功能。同样,还有一个悬而未决的问题 您应该做的是添加内存需求的约束。因此,如果您为每个容器添加500MB,那么这将防止出现这种情况 do

用例:

我有两个节点,一个机器a有1gb的内存,另一个机器B有4GB的内存

我部署了一个带有5个Java容器副本的服务,这些容器使用1GB的ram

机器A上有1个Java容器,机器B上有4个Java容器

如果我关闭machineB,如何阻止machineA启动4 Java


机器没有足够的RAM来启动这些容器,它不但不会提高可用性,反而会降低可用性。

目前还没有此功能。同样,还有一个悬而未决的问题

您应该做的是添加内存需求的约束。因此,如果您为每个容器添加
500MB
,那么这将防止出现这种情况

docker service create --name nginx --reserve-memory 500Mb --replicas 3 nginx

我不确定,但这种调度策略是swarm内置的,所以您不必配置它们。此选项是否会为每个Nginx so 1,5Gb或一组Nginx保留500 MB?是。因此,如果一台机器有1GB的可用内存,那么只能调度2个容器