스웜 조건

  • 각 서버 간의 스웜 manager가 통신할수 있게 TCP 포트가 열려 있어야 한다.
  • 각 서버에 도커가 설치되어 있어야 한다.
  • 스웜의 보안성을 위해 TLS 인증이 있어야
  • 스웜 manager: 스웜 클러스터의 도커 노드(Docker node)를 관리하기 위한 시스템
  • 스웜 manager도 유사시를 대비해 여러 개의 백업manager를 만들어 두는 것이 좋다.
  • 로드 밸런싱을 할 때 라운드로빈 방식을 쓴다.

스웜 모드 활성화

  1. 이 노드를 스웜으로 초기화(새 스웜 생성)
    docker swarm init --advertise-addr <manager 노드 주소>
    
    • 스웜 이름을 default로, 이 노드를 leader manager 노드로 지정
    • 이 노드 이름은 호스트명으로, 노드의 2377포트를 listen 상태로 지정
    • 내부적 분산데이터 저장엔진 시작 for 스웜 노드들 관리
    • 스웜을 위한 self-signed 루트 CA 생성, 토큰 넘버 생성
    • 디폴트 IP 주소 풀(10.0.0.0/8) 생성 for 글로벌 영역(overlay)
    • 사설 IP 주소는 기존의 주소들과 겹치지 않도록
  2. 이미 존재하는 스웜에 join ``` To add a worker to this swarm, run :

    docker swarm join –token <토큰넘버> :2377

To add a manager to this swarm, run :

docker swarm join-token manager ```

manager 노드 수

N EA의 Manager Node 최대 Stop 허용 갯수 : (N-1)/2 Docker는 최대 7EA의 Manager Node를 권장

관리 정보 확인

/var/lib/docker/swarm

토큰 넘버 확인

docker swarm join-token

노드 관리

  1. 노드 생성
    docker service ls
    docker service create
    docker service inspect
    
  2. 노드 복제
    docker service scale <복제할 이미지명>=3
    docker service ps <복제할 이미지명>
    docker service create --name nginx_service --replicas 3 nginx
    service rm
    

    service update

탈퇴

docker swarm leave