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으로 변경함.