如果您需要将某个服务部署在指定的节点上,可以使用
constraint
关键字来实现这个功能。
![]() |
Note |
部署约束只对新创建容器生效,对老容器变更配置时不起作用。 |
在下面的示例中,服务指定部署在 node1 上。
web:
image: 'nginx:latest'
restart: always
environment:
- 'constraint:aliyun.node_index==1'
ports:
- 80
labels:
aliyun.scale: 2
容器服务支持以下表达式:
表达式 | 说明 |
constraint:aliyun.node_index==1 | 指定部署到 node1。 |
constraint:aliyun.node_index!=1 | 不部署到 node1。 |
constraint:aliyun.node_index==(1|2|3) | 指定部署到 node1 或者 node2 或者 node3。 |
constraint:aliyun.node_index!=(1|2|3) | 部署到除 node1、node2、node3 的其他机器上。 |
affinity:image==~redis | 尽量部署到有 Redis 镜像的机器上。支持填写镜像全称,如 registry.cn-hangzhou.aliyuncs.com/xxx/xxx 。 |
affinity:service!=~redis | 尽量不部署到有 Redis 服务的机器上。参见服务部署约束(affinity:service)。 |