본문 바로가기

도커

Swarm Mode 기초

Docker Swarm Mode

Docker Swarm Mode는 여러 대의 server를 하나의 resource pool로 사용하기 위해 제공 되는 docker의 기능으로, docker version 1.12이후 부터 사용 가능하다.

Docker Swarm Mode(이하 Swarm Mode)는 어떤 server에 container를 할당 할 것인지 결정하는 scheduler, load balancer, High Availability등을 해결해 준다.

Swarm Mode의 구조

Swarm Mode는 크게 manager node 와 worker node로 구성 되어 있으며, Swarm Mode 내부에는 여러개의 도커 서버 정보를 저장하고 동기화 하는 Distributed Coordinator, 각 서버를 제어하는 에이전트 등이 도커 엔진 내부에 존재하여 서버 클러스터를 구축 할 수 있게 해준다.

swarm mode 구조

Manger Node와 Worker  Node

Node

Swarm mode에서 각각의 서버를 하나의 Node라고 칭하며, Node의 종류에는 Manger Node와 Worker Node가 있다.

Worker Node

실제로 컨테이너가 생성 및 실행되고 관리되는 서버를 칭하며, 매니저 노드에 의해서 관리된다.

Manager Node

Manger Node는 Swarm Mode에서 최소 1개 이상 존재해야 하는 Node이며,  Mangere Node는 기본적으로 Worker Node의 역할을 같이 수행 할 수 있다.

하지만 일반 적으로 Manger Node와 Worker Node를 분리하는 걸 권장한다.

Swarm Mode에서 Manger Node의 절반 이상이 정상적으로 작동하지 못할 경우  Manger Node가 복구될 때까지 클러스터 중단 된다.

만약 네트워크 파티셔닝 같은 현상이 발생하면 짝수개의 Manger Node로 구성된 클러스터는 중단 되나, 홀 수개로 구성된 클러스터는 quorum manager에서 클러스터 운영이 계속 될 수 있으므로 홀수 개로 운영되는 게 권장된다.

 

Service 와 Task

Service

Swarm Mode에서 제어하는 단위로 여러개의 container가 모여있는 형태이다. 하나의 service를 실행하면 service에 속해 있는 모든 container에 같은 명령이 실행 되며, 각 각의 container들은 각각의 manager node 와 worker node에 할당된다.

Task

Service에서 각 node에 할당 되는 container를 task라고 한다.

+ replica

Service의 Task를 복제 해 놓은 container를 칭하며, 클러스터 내에서 미리 설정해 놓은 값 만큼 실행 되고 있는 replica container 수를 맞추려고 한다.

 

 

Service 처리

여러개의 replica service가 존재하는 상태에서 Service를 처리 할 때, 기본적으로 Swarm mode는 ingress 네트워크를 사용하며, 현재 활성화 되어 있는 container중에서 라운드 로빈 방식을 채택해 task가 실행 된다.

'도커' 카테고리의 다른 글

Docker 기초  (0) 2021.12.09