docker swarm join

docker swarm join

docker swarm join은 노드를 스웜(Swarm)에 조인시키는 명령이에요. 매니저 토큰을 쓰면 매니저로, 워커 토큰을 쓰면 워커로 조인해요.

출처: 문서

본문

docker swarm join은 노드를 스웜에 조인시키는 명령이에요. --token 플래그에 넘기는 토큰에 따라 매니저 노드나 워커 노드로 조인해요. 매니저 토큰이면 매니저로, 워커 토큰이면 워커로 조인해요.

docker swarm join [OPTIONS] HOST:PORT

지원하는 옵션은 다음과 같아요.

옵션 기본값 설명
--advertise-addr 광고할 주소예요 (형식: [:port]).
--availability active 노드의 가용성 (active, pause, drain)
--data-path-addr API 1.31+ 데이터 경로 트래픽에 쓸 주소 또는 인터페이스예요.
--listen-addr 0.0.0.0:2377 수신 주소예요 (형식: [:port]).
--token 스웜 진입용 토큰이에요.

매니저로 조인

매니저 토큰으로 매니저 노드를 조인하는 예시예요.

$ docker swarm join --token SWMTKN-1-aabbccdd00112233aabbccdd00112233aabbccdd00112233aa-aabbccdd00112233... 192.168.99.121:2377
This node joined a swarm as a manager.

$ docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
dkp8vy1dq1kxleu9g4u78tlag *  manager2  Ready   Active        Reachable
dvfxp4zseq4s0rih1selh0d20    manager1  Ready   Active        Leader

클러스터는 보통 매니저를 최대 3~7개까지만 두는 게 좋아요. 쿼럼에 참여하지 않을 노드는 워커로 조인하고, 매니저는 정적 IP를 가진 안정적인 호스트여야 해요.

워커로 조인

워커 토큰으로 워커 노드를 조인하는 예시예요.

$ docker swarm join --token SWMTKN-1-aabbccdd00112233aabbccdd00112233aabbccdd00112233aa-aabbccdd00112233... 192.168.99.121:2377
This node joined a swarm as a worker.

주요 플래그

  • --listen-addr: 매니저라면 인바운드 스웜 매니저 트래픽을 수신할 주소예요. 기본은 0.0.0.0:2377이고, 인터페이스 이름도 지정할 수 있어요. 기존 스웜에 조인할 땐 보통 필요 없어요.
  • --advertise-addr: 다른 스웜 멤버에게 API 접근용으로 광고할 주소예요. 시스템에 IP가 여러 개면 매니저 간 통신과 오버레이 네트워킹을 위해 반드시 지정해야 해요. 로드 밸런서를 통해 새 노드를 조인할 때는 노드 자신의 IP를 광고하도록 이 플래그를 쓰는 게 좋아요.
  • --data-path-addr: 글로벌 스코프 네트워크 드라이버가 이 노드의 컨테이너에 도달하기 위해 다른 노드에 공개할 주소예요. 지정하지 않으면 광고 주소의 IP나 인터페이스를 사용해요.
  • --availability: 노드가 조인할 때의 가용성값이에요. 워커 노드 역할을 하지 않는 전용 매니저를 만들려면 --availability=drain을 쓰면 돼요.

더 알아보기