////
Search

컨테이너 오케스트레이션(Ocastration)

생성일
2023/04/28 06:18
태그

컨테이너 오케스트레이션

컨테이너 오케스트레이션은 컨테이너화 된 어플리케이션의 구성, 관리, 확장, 네트워킹, 배포 등을 자동화하여 간편하게 다룰 수 있도록 해주는 것을 의미한다. 오케스트레이션을 통해 복잡한 구조와 환경의 컨테이너 어플리케이션을 쉽게 반복적으로 생성할 수 있고, 복잡한 태스크와 워크플로우를 보다 쉽게 관리할 수 있다.
대표적인 도커의 컨테이너 오케스트레이션으로는 Docker compose와 쿠버네티스(Kubernetes), 도커 스웜(Docker Swarm), Apache Mesos 등이 있다.

Docker compose

Docker compose는 여러 개의 컨테이너로 이루어진 서비스를 구축 및 실행시킬 때 컨테이너의 설치 옵션, 순서, 네트워크, 볼륨, 연관관계 등을 설정하여 Dockerfile만 사용하는 것보다 서비스 구축을 용이하게 도와주는 툴이다. 매번 Dockerfile들을 하나하나 빌드하고 네트워크와 볼륨을 설정하는 것은 매우 비효율적이고 유지 관리에도 좋지 않은데, docker compose를 사용하여 여러 컨테이너를 정의해두고 실행 순서 및 환경 설정을 해두면 쉽게 어플리케이션을 구축 및 생성할 수 있다.
하지만 컨테이너마다 빌드 옵션, 볼륨, 네트워크와 같은 설정들을 하나하나 지정해주어야하고, 이런 이유로 컨테이너 개수가 많아지게 되면 관리에 어려움이 발생한다. 쿠버네티스와 비교하면 컨테이너의 개수가 많은 경우 뿐 아니라, 스케일아웃이나 네트워크 설정 변경과 같은 부분에서 불리하다.

쿠버네티스

스케쥴링이나 확장성, 로드 밸런싱, 롤아웃/롤백 등 도커의 컨테이너를 쉽게 다룰 수 있는 많은 기능들을 포함하여 컨테이너의 배포 및 관리, 운영을 도와주는 툴이다. 구글에서 개발한 가장 널리 사용되는 오케스트레이션 프레임워크로, 도커 엔진만 있다면 사용이 가능하고 컨테이너의 수가 많다면 docker compose에 비해 월등히 유용하다.
오픈소스로써 컨트리뷰터가 리눅스 커널 다음으로 많을 정도로 많은 소스를 사용할 수 있는 것도 하나의 장점이다.

도커 스웜

도커 기반의 환경에서 컨테이너 클러스터를 만들고 조정 및 관리하기 가장 쉬운 오케스트레이션 프레임워크이다. 여러 개의 도커 호스트를 클러스터링하여 가상의 단일 도커 호스트를 생성할 수 있고, 호스트 OS에서 간단하게 설치하고 설정 및 동작 시킬 수 있다.

Apache Mesos

수만 대의 물리적 시스템으로 확장할 수 있도록 설계된, Json 기반의 컨테이너 오케스트레이션 프레임워크다. 다른 서비스와 함께 응용프로그램을 배치하기에 적합나다.