도커 스웜이란 도커 컨테이너를 위한 클러스터링, 스케줄링 툴을 말한다. 스웜을 이용하면 여러개의 서버와 컨테이너를 쉽게 관리 할 수 있다.
지원 기능
클러스터링: 여러 개의 서버를 하나의 서버처럼 사용할 수 있습니다. 클러스터에 새로운 서버를 추가할 수도 있고 제거할 수도 있습니다. 작게는 몇 개 안 되는 서버부터 많게는 수천 대의 서버를 하나의 클러스터로 만들 수 있습니다. 여기저기 흩어져 있는 컨테이너도 가상 네트워크를 이용하여 마치 같은 서버에 있는 것처럼 쉽게 통신할 수 있습니다.
서비스 디스커버리: 말 그대로 서비스를 찾아주는 기능입니다. 클러스터 환경에서 컨테이너는 어느 서버에 생성될지 알 수 없고 다른 서버로 이동할 수도 있습니다. 따라서 컨테이너와 통신을 하기 위해서 어느 서버에서 실행중인지 알아야 하고 컨테이너가 생성되고 중지될 때 어딘가에 IP와 Port같은 정보를 업데이트해줘야 합니다. 키-벨류 스토리지에 정보를 저장할 수도 있고 내부 DNS 서버를 이용할 수도 있습니다.
로깅, 모니터링: 여러 대의 서버를 관리하는 경우 로그와 서버 상태를 한곳에서 관리하는게 편합니다. 툴에서 직접 지원하는 경우도 있고 따로 프로그램을 설치해야 하는 경우도 있습니다. ELK와 prometheus등 다양한 툴이 있습니다.
Docker Swarm의 장점은 아래와같다.
• 여러개의 Docker 호스트를 함께 클러스터링하여 단일 가상 Docker 호스트 생성
• 호스트 OS에 Agent만 설치하면 간단하게 작동하고 설정이 쉽고 Agent를 외부에 설치하지 않는다.
• Docker명령어와 Compose를 그대로 사용가능
--> 결국 그럼 compose와 다른 개념이 아니라 같은 개념인건가?
--> 도커 공식문서에 보면 일정 버전 이후엔 자동으로 docker swarm이 적용된다고함
참조 - https://roseline124.github.io/kuberdocker/2019/07/31/docker-study08.html