기존의 node.role과 비슷하게 노드에 key:value 형식의 라벨을 부착하고, 이를 기반으로 컨테이너를 배치하고자 할 때 활용된다.
노드 구분
worker1 | worker2 | worker3 |
---|---|---|
zone-a | zone-b | zone-c |
서울 | 대구 | 제주 |
company:abc | company:abc | X |
rapa@manager:~$ docker node update --label-add zone=a --label-add company=abc worker1
worker1
rapa@manager:~$ docker node update --label-add zone=b --label-add company=abc worker2
worker2
rapa@manager:~$ docker node update --label-add zone=c worker3
worker3
rapa@manager:~$ docker service create --name zone --mode global --constraint 'node.labels.zone==c' nginx
rapa@manager:~$ docker service ps zone | grep zone
t1hc2xam9av0 zone.hripanq8twelfv6k6jtlvntp1 nginx:latest worker3 Running Running 18 seconds ago