https://docs.docker.com/engine/swarm/

 

Swarm mode overview

 

docs.docker.com

 

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를 따로 구성(대규모)

docker swarm mode 물리적 구조

 

docker swarm mode의 load balancing

- 외부에서 어떤 host에 접근 하더라도 IPVSingress 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

+ Recent posts