본문 바로가기
DevOps/Docker

[Docker] Docker Swarm 이란? Docker Swarm vs K8S

by 스파이디웹 2022. 12. 3.
728x90

1. Docker Swarm이란

k8s 과 마찬가지로 컨테이너 오케스트레이션(Container Orchestration) 도구


2. docker swarm 등장 배경

도커(Docker)는 단일 호스트 안에서 컨테이너 기반 애플리케이션을 관리할 때 유용한 도구인데,

단일 호스트로 구성된 환경은 확장성(Scalability) 가용성(Availabilty), 그리고 장애 허용성(Fault Tolerance) 측면에서 많은 한계점을 가진다.

 

애플리케이션 이용자가 늘어나면서 호스트의 가용 시스템 자원이 바닥나게 되거나, 어떠한 이유로든 호스트가 일시적으로 작동 불능의 상태가 된다면, 아마도 애플리케이션의 서비스가 곧바로 중단되는 상황을 맞이하게 될 것이다.

그런데 여러 대의 호스트에서 컨테이너를 관리하려니, 도커(Docker) 자체 만으로는 해결하기 어려운 아래와 같은 문제를 해결하려고 나오게 됐다.

  • 서로 다른 각각의 호스트들을 어떻게 연결하고 관리할 것인가?
  • 어떤 컨테이너를 어느 호스트에 배치하여 구동시킬 것인가?
  • 각기 다른 호스트에 배치된 컨테이너들의 상호 통신을 어떻게 제어할 것인가?

3. Docker Swarm vs K8S

Docker Swarm의 기능

  • 쿠버네티스 만큼은 아니더라도, 여러 대의 호스트로 구성된 중소 규모의 클러스터에서 컨테이너 기반 애플리케이션 구동을 제어하기에 충분한 기능을 갖추고 있다.
  • 도커 엔진(Docker Engine)이 설치된 환경이라면 별도의 구축 비용 없이 스웜 모드(Swarm Mode)를 활성화하는 것만으로 시작할 수 있다.
  • 도커 컴포즈(Docker Compose)를 사용해 본 사람이라면 도커 스웜(Docker Swarm)의 스택(Stack)을 이용한 애플리케이션 운영에 곧바로 적응할 수 있다.
  • 도커 데스크탑(Docker Desktop)으로도 클러스터 관리와 배포가 모두 가능한 단일 노드 클러스터를 바로 만들 수 있다. 따라서 최소한의 자원으로 컨테이너 오케스트레이션 환경을 만들어 시험해볼 수 있다.

현재는 쿠버네티스가 컨테이너 오케스트레이션에 관한 사실상의 표준 기술로 자리 잡은 상태에서 docker swarm은 각광 받지 못하고 있다.

 

참조:

https://seongjin.me/docker-swarm-introduction-nodes/

728x90

댓글