0부터 시작하는 Docker Swarm 공부 - Swarm Mode Cluster 구성하기 & Token Join & Node Rule 변경

Jaehong Lee·2022년 8월 24일
0
post-thumbnail

1. 확인 사항

모든 노드에서 hosts 파일 확인

  • cat /etc/hosts 를 통해 hosts 파일에 해당 부분이 추가되있는지 확인하자

모든 노드에서 동작중인 컨테이너 중지 및 삭제

모든 노드에서 시간이 동일한 시간인지 여부 확인

2. Cluster 생성 - Swarm Mode 초기화 & Token 발행

p. 337

  • manager 역활을 수행할 노드에서 토큰을 발행하고, worker 는 해당 토큰을 이용하여 매니저에 Join 한다

Docker Swarm 은 Docker 설치시 기본적으로 포함되어 있다

Swarm Mode 초기화 - init

  • Cluster 를 생성하자
  • advertise-addr 은 Swarm Cluster 환경에서 다른 Node 가 접속할 Ip 주소를 지정한다
    • 만약, IP 를 DHCP 로 지정하면, IP 주소를 알 수 없으며, Node 를 재부팅했을 때, IP 가 바뀔 수 있으므로 IP 주소가 아닌 eth 와 같은 인터페이스로 지정할 수 있다
      • Node 생성시 Network Model 을 Virtio 로 설정하면, Interface 이름이 eth 0 이 된다
    • 또한, DHCP 로 지정시 lease Time 이 있는데, 이 Time 이 끝나면 IP 가 회수되어 IP 가 바뀔 수 있다. 이를 lease Time 을 Infinite 로 설정해서, IP 를 바꾸지 않고, 영구적으로 사용하게 할 수 있다
  • 명령을 실행하면, swarm 이 실행되며, Token 이 발행된다. Token 을 발행한 Node 는 자동으로 manager 가 되며, 다른 worker Node 는 해당 Token 을 통해 Manager Node 에 Join 할 수 있다

Token Join

  • 위의 명령 결과에 나온 Join 명령어를 복사해서 worker Node 에 붙여넣자

3. Node list & Token 확인

Swarm Cluster 환경 실행 상태를 확인하자

  • Swarm Cluster 환경이 잘 동작하는지 node list 를 통해 Join 한 node 를 확인하자

    • AVAILABILITY
      • Active 는 컨테이너 생성이 가능한 상태
      • drain 은 동작중인 모든 컨테이너가 종료되고, 새로운 컨테이너를 생성할 수도 없는 상태
      • pause 는 새로운 컨테이너를 생성할 수는 없지만, drain 과는 달리 기존 컨테이너가 종료되지는 않는다

      유지 보수를 위해 해당 모드를 drain 또는 pause 로 변경한다

  • Leader 는 Token 을 발행한 Node 이다

Token 확인

  • 처음 manager 가 Token 을 발행하면, manager 용, worker 용 Token 이 발행된다. worker 외에 추가로 manager 를 두고 싶다면, 별도의 Node 에서는 manager 용 Token 으로 Swarm Cluster 에 Join 한다

  • 만약, manager 가 1 대인 상태에서 해당 manager 가 다운된다면, 전체 Cluster 를 관리할 수 없으므로, 실제 환경에서는 최소한 2 대의 manager Node 를 두어야 한다

4. Node 정보 확인

  • node 에 대한 정보를 확인하자
  • Spec 을 확인하면, label 은 따로 지정하지 않았기에 없다. Role 이 manager 로 되있는 것을 확인 가능하다
  • worker1 Node 는 Role 이 worker 로 되어있다

5. Node Role 변경

등급 올리기

  • 만약, 현재 상태에서 worker1 node 를 manager 로 변경하고 싶다면

    a. 등급을 promote 를 통해 올려야 한다

docker node promote worker1

  • 위와 같이 Role 을 manager 로 promote 할 수 있다
    • worker1 은 Leader 는 아니다. Leader 는 Token 을 발행한 Node 를 칭하기 때문이다
  • manager 만 Swarm 명령이 가능하다

등급 내리기

  • demote 를 통해 manager 를 worker 로 내릴 수 있다

6. Cluster 벗어나기

docker swarm leave

  • worker Node 에서 위와 같이 명령하면 된다
  • worker Node 가 Down 상태가 된다. 아직 Node 가 삭제되지는 않는다

Node 삭제

docker node rm 이름

  • Node 를 삭제해주자

Leader 는 Cluster 에서 벗어날 수 없다

다시 worker Token 을 통해 Cluster 에 가입시키자

profile
멋진 엔지니어가 될 때까지

0개의 댓글