1. 개요
<Docker 가상 환경 구축 입문>의 <Chapter 9-10. Node Availability>를 읽고 정리한 내용입니다.
2. Node Availability
-
Node Availability란, 노드의 가용성을 의미하며, Active/Pause/Drain의 세 종류의 상태가 있음.
- Active: 스케줄러가 노드에 태스크를 부여할 수 있는 상태
- Pause: 스케줄러가 노드에 태스크를 부여할 수는 없지만, 기존 태스크는 그대로 실행할 수 있는 상태
- Drain: 스케줄러가 노드에 태스크를 부여하지 못하며, 기존 태스크는 shutdown된 상태
-
docker node ls 명령어를 실행하여 확인할 수 있음.
$ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION x0bh1ydgpb0ezgs9y214r73v7 * manager1 Ready Active Leader 18.09.9 qqv1l08a8rol9d0cp2y8bs6dt worker1 Ready Active 18.09.9 jh8kbkd0bdhcm96qmkrek8xbt worker2 Ready Active 18.09.9
3. Availability 변경
-
노드의 Availability(가용성)를 변경하기 위해서는 docker node update 명령어를 사용함.
$ docker node update --availability drain manager1 manager1 $ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION x0bh1ydgpb0ezgs9y214r73v7 * manager1 Ready Drain Leader 18.09.9 qqv1l08a8rol9d0cp2y8bs6dt worker1 Ready Active 18.09.9 jh8kbkd0bdhcm96qmkrek8xbt worker2 Ready Active
- 노드의 점검을 수행하거나, 새로운 컨테이너를 기동시키지 않는 경우, 혹은 현재의 컨테이너를 강제적으로 종료하고 태스크를 부여받지 않기 위한 경우에 가용성을 drain으로 변경함.