Docker Swarm 之节点标签
默认情况下,多节点swarm集群中的服务会随机部署到某个节点中,如果需要将服务发布到指定节点上,就需要用到节点标签了。
一、给swarm节点添加标签
1、查看swarm集群中有哪些节点,假设节点一的名称是 nodename1,后面以此节点举例
docker node ls
2、为节点一添加 key为group,value为 g1 的标签(注:可以添加多个标签,多个标签的key不能相同) docker node update --label-add group=g1 nodename1
3、修改节点一的标签,同添加标签的命令相同,key设置为已存在的key则是修改 docker node update --label-add group=g111 nodename1
4、查看节点标签
docker node inspect nodename1
5、删除节点标签
docker node update --label-rm group nodename1
二、将服务发布到指定节点
1、service 方式
docker service create --name mynginx --constraint node.labels.group == g1 nginx
2、stack 方式(只展示关键配置)
version: 3.6 services: mynginx: image: ports: deploy: placement: constraints: # 添加条件约束 - node.labels.group==g1