docker swarm 部署,如何设置max per node?
时间: 2024-05-14 18:14:17 浏览: 129
可以使用`--constraint`参数来设置每个节点的最大容器数。
例如,假设您要在Docker Swarm中设置每个节点最多运行10个容器,可以使用以下命令:
```
docker service create --name myservice --constraint 'node.labels.type == worker' --replicas 20 myimage
```
其中,`node.labels.type == worker`表示约束条件为节点标签type等于worker,即只针对worker节点限制容器数量。`--replicas 20`表示总共需要20个容器,因为每个节点最多只能运行10个容器,所以需要至少2个节点来满足这个需求。
另外,也可以使用Docker Swarm的调度器来自动平衡每个节点上的容器数量。可以通过设置`--mode global`参数来实现这一功能。
例如,假设您有一个服务需要在Docker Swarm集群中运行,并且每个节点最多只能运行5个容器。您可以使用以下命令来启动该服务:
```
docker service create --name myservice --mode global --constraint 'node.labels.type == worker' myimage
```
其中,`--mode global`表示需要在每个节点上运行该服务,而不是根据replicas数量进行分配。`--constraint 'node.labels.type == worker'`表示该服务只能运行在worker节点上,而不是manager节点上。通过这种方式,Docker Swarm的调度器会自动平衡每个节点上的容器数量,确保每个节点上的容器数量不超过5个。
阅读全文