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 메뉴에서 삭제해야 합니다.