2020. 11. 30. 09:32 Linux Server/Docker
[Docker] Docker Swarm 구축
- Docker Swarm 구성환경 :
- Manager Node 호스트 3개 - Worker Node 2개 |
- Docker Swarm 구성요소
- Swarm 클러스터는 Manager Node 와 Worker Node 두 종류가 존재.
Manager Node
- Swarm과 사용자 간의 Interface로써 Swarm 방식으로 처리되는 모든 기능에 대해 사용자의 명령을 받는 통로 역활 수행 - 자신을 비롯한 모든 Node의 등록과 탈퇴를 처리하고 상태정보 관리를 통하여 가용자원의 상태를 관리 - Task Scheduler로써 사용자가 지시한 일을 여러 Worker가 적절히 수행할 수 있도록 Service의 생명주기 관리를 주관 - 다수의 Manager 간 클러스터 정보를 동기화하고 전체 Swarm클러스터의 가용성을 관리 |
Worker Node
- Manager Node의 지시를 받아 container를 구동하는 노드. |
- Docker Swarm 구성방법 :
- docker swarm init --advertise-addr [ip] (docker swarm 을 구성하기 위한 초기화 명령어 / worker 노드를 추가하는 token 값이 생성된다.) |
- docker swarm join-token worker (해당 명령어 입력시 Worker 노드를 추가하는 token 값이 생성되며, Worker 노드에 가입을 원하는 호스트에서 결과값 실행시 가입완료) |
- docker swarm join-token manager (해당 명령어 입력시 아래 결과값처럼 Manager 노드를 추가하는 token 값이 생성되며, Manager 노드에 가입을 원하는 호스트에서 결과값 실행시 가입완료.) |
To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-0ysvt743g5e8gi5n3zmetdgqa449tdp2zgbxbaimmlkhghq9za-6w26kqxyn70ujmphtuw6o5tqr 10.230.102.13:2377 |
- 유지보수 관리 모드
- docker node update --availability drain [node name] (유지보수 모드로 변경(drain)하게 되면 앞으로 모든 컨테이너는 해당 서버에 할당이 되지 않으며, 현재 구동중인 모든 컨테이너들이 다른 쪽으로 넘어가게됨) |
- 유지보수 관리 모드 취소
- docker node update --availability active [node name] (유지보수 모드를 취소하는 명령어로, 앞으로 해당호스트에도 컨테이너 할당이 가능하게되며, 취소했다고 해도 기존에 해당호스트에서 실행되던 컨테이너들은 다시 넘어오지 않는다.) |
- Manager Node로 승격
- docker node promote [WorkerNode Name] (Worker Node를 Manager Node로 승격) |
- Worker Node로 강등
- docker node demote [ManagerNode Name] (Manager Node를 Worker Node로 강등) |
- node 제거
- docker swarm rm [node name] (Manager 노드에서 해당명령어로 노드를 제거시킬수 있음) |
- Cluster 탈퇴방법
- docker swarm leave |
- 장애시험
- 매니저 노드 2개를 구성하여 일반 Manager노드 1개가 장애가 날경우 (정상작동) |
- 매니저 노드 2개를 구성하여 리더 Manager노드 1개가 장애가 날경우 (장애) (The swarm does not have a leader. It’s possible that too few managers are online. Make sure more than half of the managers are online. 의 에러가 발생하며 모든 서버가 마비가 된다.) |
- 매니저 노드 3개를 구성하여 일반 Manager노드 1개가 장애가 날경우 (정상작동) |
- 매니저 노드 3개를 구성하여 리더 Manager노드 1개가 장애가 날경우 (정상작동) |
※ 위처럼 장애시험을 통해 얻은 결과는 총 Manager노드 개수의 반 이상이 정상인 상태여야 정상작동을 한다는 것이다. 위 같은 이유로 보통 Manager Node 의 개수는 3, 5, 7 처럼 홀수개의 갯수로 구성해야 가용성이 보장된다.
'Linux Server > Docker' 카테고리의 다른 글
[Docker] docker-compose 를 이용한 서버 리소스 모니터링 툴 구축 (1) | 2019.02.24 |
---|---|
[Docker] 도커 명령어 (0) | 2019.02.24 |