Create Docker swarm cluster (for production)

By | 2020년 8월 24일
Table of Contents

Create Docker swarm cluster (for production)

개요

first manager node

  • 첫번째 매니저 노드는 고정아이피를 가져야 합니다.

    만약 auto scaling 을 고려하고 있다면 첫번째 매니저 노드 는 auto scaling group 과 독립적이어야 합니다.

  • 첫번째 매니저 노드는 모든 노드에서 접속 가능해야 합니다.

manager/worker node

manager node 는 worker node 로도 작동합니다. 따라서 소규모의 클러스터를 구성한다면, 클러스터의 단순성을 가지기 위해 모든 노드를 manager node 로 구성하는 것이 좋습니다.

보안 그룹 생성

allow-swarm 을 생성합니다. 규칙은 생성하지 않습니다.

protect-swarm 을 생성합니다. 인바운드 규칙에 allow-swarm 로 부터의 모든 트래픽을 허용해 줍니다.

Create First Manager Node

EC2 instance 생성

보안그룹에 위 allow-swarm, protect-swarm 를 추가합니다.

도커 를 설치해 줍니다.

first cluster manager 로 지정

# init cluster and get command for worker node
docker swarm init --advertise-addr <manager private IP>

# get command for manager node
docker swarm join-token manager

위 명령으로 생성된 Manager(Worker) Node 추가 명령을 복사해 놓습니다.

Create Manager Node

인스턴스 생성시 인스턴스 세부 정보 구성 을 선택합니다.

인스턴스 갯수에 2 를 입력하고, Auto scaling Group 을 설정한 후, 아래로 스크롤 합니다.

Auto scaling Group 생성시, 로드 밸런싱 활성화를 해줍니다.

아래와 같이 도커생성 스크립트와 manager 접속 명령을 추가해 줍니다.

보안그룹에 위 allow-swarm, protect-swarm 를 추가합니다.

Worker Node 생성 후 Master Node 에 접속된 것을 확인합니다. 대략 5-10분 정도 걸립니다.

docker node ls

위에서 인스턴스 세부 정보 구성 설정시 Auto scaling Group 을 생성했다면 인스턴스를 종료하는 것이 아니라, Auto scaling Group 메뉴에서 삭제해야 합니다.

Create Worker Node(Optional)

인스턴스 생성시 인스턴스 세부 정보 구성 을 선택합니다.

인스턴스 갯수에 2 를 입력하고, Auto scaling Group 을 설정한 후, 아래로 스크롤 합니다.

Auto scaling Group 생성시, 로드 밸런싱 활성화를 해줍니다.

아래와 같이 도커생성 스크립트와 manager 접속 명령을 추가해 줍니다.

보안그룹에 위 allow-swarm, protect-swarm 를 추가합니다.

Worker Node 생성 후 Master Node 에 접속된 것을 확인합니다. 대략 5-10분 정도 걸립니다.

docker node ls

위에서 인스턴스 세부 정보 구성 설정시 Auto scaling Group 을 생성했다면 인스턴스를 종료하는 것이 아니라, Auto scaling Group 메뉴에서 삭제해야 합니다.

답글 남기기