https://docs.docker.com/engine/swarm/
Docker Swarm
- docker container를 위한 클러스터링, 스케줄링 툴
- 여러 개의 서버와 컨테이너 관리를 쉽게
- 기능
- docker engine 통합 관리(docker manager node에서 worker node를 통합 관리)
- load balancing(worker node 접속 시 round robin 방식으로 worker node의 task를 연결)
- task 개수 조절 기능(scale)
- multi-host-networking(overlay network를 통해 task 간 사용할 수 있는 네트워크 제공)
- 내장 DNS 서버 제공
- 종류
- docker warm mode: manager-node와 worker-node가 한 host에 공존
- docker swarm: manager-node와 worker-node를 따로 구성(대규모)
- 외부에서 어떤 host에 접근 하더라도 IPVS와 ingress network를 사용하여 worker-node들이 제공하는 모든 task에 접속 가능
Docker Swarm Node
- 도커나 스웜 모드에서 돌아가는 도커 서버
- manager node / worker node
Manager node
- 클러스터의 상태를 유지(뗏목 합의 알고리즘: 여러 서버 중 일부에 장애가 생겨도 나머지 서버가 정상적인 서비스를 할 수 있도록)
- 스케줄링 서비스: worker node에게 컨테이너 배포
- 스웜 모드 제공: docker swarm init
Worker node
- 하나 이상의 manager node를 가짐
- docker service create로 도커 스웜 실행("service 제공")
# 노드 상태를 drain으로 변경한다.
docker node update --availability drain <노드ID>
# 노드의 가용성을 확인한다.
docker node inspect --pretty <노드ID>
스케줄러가 매니저 노드에게 작업자 노드가 하는 task를 실행시키지 않기 위해서 매니저 노드의 가용성을 drain
스케줄러는 drain 상태의 노드에는 task를 맡기지 않고 active상태의 노드에게만 task 할당
'Container' 카테고리의 다른 글
[oslab] LXD (0) | 2021.09.13 |
---|---|
[oslab] LXC (0) | 2021.09.13 |
[Docker] Docker Machine (0) | 2021.09.11 |
[Docker] Docker Compose (0) | 2021.09.11 |
[Docker] Docker Engine (0) | 2021.09.11 |