3장. 도커 스웜
3.1 도커 스웜을 사용하는 이유
- 여러 대 서버를 하나의 자원 풀로 만든 것은 어려움 작업
- 디스커버리
- 새로은 서버나 컨테이너가 추가됐을 때 이를 발견
- 스케줄러와 로드밸런서
- 고가용성
- 도커 스웜과 스웜 모드
3.2 스웜 클래식과 도커 스웜 모드
도커 스웜
- 여러 대의 도커 서버를 하나의 클러스터로 만들어 컨테이너를 생성하는 여러 기능 제공
- 컨테이너를 특정 도커 서버에 할당할 수 있고 유동적으로 서버 확장 가능
- 스웜 클러스터에 등록된 서버의 컨테이너를 쉽게 관리
스웜 클래식
- 도커 1.6 이후부터 사용할 수 있는 컨테이너로서의 스웜
- 여러 대의 도커 서버를 하나의 지점에서 사용하도록 단일 접근점
- docker run, docker ps 등 일반적인 도커 명령어와 도커 API로 클러스터의 서버을 제어하고 관리
- 분산 코디네이터, 에이전트 등 별도 실행 필요
- 도커 공식문서에 레거시로 언급
도커 스웜 모드
- 도커 1.12 이후부터 사용할 수 있음
- 마이크로서비스 아키텍처의 컨테이너를 다루기 위한 클러스터링
- 같은 컨테이너를 동시에 여러 개 생성해 필요에 따라 유동적으로 컨테이너의 수를 조절
- 컨테이너로의 연결을 분산하는 로드밸런싱 기능을 자체적으로 지원
- 서비스 확장성과 안정성이 스웜 클래식보다 뛰어남
- 클러스트링을 위한 모든 도구가 도커 엔진 자체에 내장
- 쉽게 서버 클러스터 구축 가능
- 분산 코디네이터
- 매니저
- 에이전트
- 적어도 3대 이상의 도커 서버 사용해야 제대로 동작
3.3 스웜 모드
도커 스웜 모드의 구조
- 구성 요소
- 매니저 노드
- 워커 노드를 관리하기 위한 도커 서버
- 컨테이너 생성 가능
- 워커 노드 역할 포함
- 1개 이상 존재
- 워커 노드
- 실제로 컨테이너가 생성되고 관리되는 도커 서버
- 없어도 됨
- 워커 노드와 매니저 노드를 구분해서 사용하는 것을 권장
- 매니저 노드 다중화
- 매니저의 부화를 분산
- 매니저 노드가 다운됐을 때 정상적으로 스웜 클러스터 유지
- 스웜 클러스터의 성능이 좋아지는 것은 아님
- 매니저 노드의 절반 이상에 장애 발생 시, 매니저 노드가 복구될 때까지 클러스터 운영 중간
- 매니저 노드 홀수 개 구성 권장
도커 스웜 모드 클러스터 구축
스웜 모드 서비스
도커 스웜 모드 노드 다루기