오늘날의 개발에서, 애플리케이션은 더 이상 하나의 통일체가 아니라 특정 애플리케이션이 설계 의도대로 기능하도록 함께 작동해야 하는 수십 또는 수백 개의 느슨하게 결합되고 컨테이너화된 요소로 구성된다. 컨테이너 오케스트레이션( Container Orchestration )은 이러한 컨테이너의 배포, 관리, 확장, 네트워킹의 자동화 프로세스를 의미한다.
컨테이너 오케스트레이션의 작동 원리
Apache Mesos, Google Kubernetes, Docker Swarm 등의 플랫폼들은 각자 컨테이너 관리를 위한 자체적인 특별한 방식을 보유하고 있지만, 사용자들은 컨테이너 오케스트레이션 엔진을 통해 컨테이너의 시작 및 중단 시점 제어, 클러스터로 그룹화, 애플리케이션을 구성하는 모든 프로세스 조정을 수행할 수 있습니다. 사용자들은 컨테이너 오케스트레이션 툴을 통해 컨테이너 구축을 안내하고, 업데이트, 상태 모니터링, 장애 조치 절차를 자동화할 수 있습니다.
컨테이너 오케스트레이션에는
Docker Compose 란, 여러 개의 컨테이너로 이루어진 도커 어플리케이션을 정의하고
실행할 수 있도록 도와주는 툴이다. YAML 파일로 이루어진 설정 파일과 간단한 명령어를
통해서 아래와 같은 기능들을 수행 할 수 있다.
Doker Compose 의 가장 핵심이 되는 docker-compose.yml
의 구성을 살펴보자.
version: "1.0"
services:
deploy:
update_config:
parallelism: 1
order: stop-first
가장 상단에는 서비스 이름 이 오게된다.
아래 설정의 경우, serviceA 와 serviceB 서비스가 실행되게 된다.
실제 생성되는 서비스의 이름은 serviceA, serviceB 가 아닌 스택 이름과 조합한 이름을 사용한다.
version:
services:
serviceA:
...
serviceB:
...
[ref]
https://www.redhat.com/ko/topics/containers/what-is-container-orchestration
https://docs.docker.com/compose/