[IT트렌드] 컨테이너 오케스트레이션 (Container Orchestration)

In News

지난 4월호 뉴스레터에서는 마이크로 서비스들을 컨테이너로 만들어 배포 하는 방법에 대해 소개해 드렸습니다. (마이크로 서비스 다시 보기)
이번 연재에서는 이전에 안내드린바와 같이 Container 배포 관리 툴에 대해 안내드리도록 하겠습니다.

컨테이너 배포 관리는 흔히 컨테이너 오케스트레이션 (Container Orchestration) 이라고 불립니다.
컨테이너 오케스트레이션의 목적은 여러 컨테이너의 배포 프로세스를 최적화 하는데 있으며, 이것은 컨테이너와 호스트의 수가 증가함에 따라 점점 더 가치가 있게 됩니다. 이러한 유형의 자동화를 오케스트레이션이라고 합니다.
오케스트레이션은 단지, 컨테이너를 자동 배포하는 기능만 있는 것이 아니라 다음과 같은 다양한 기능을 포함 할 수 있습니다.

• 컨테이너 자동 배치 및 복제
• 컨테이너 그룹에 대한 로드 밸런싱
• 컨테이너 장애 복구
• 클러스터 외부에 서비스 노출
• 컨테이너 추가 또는 제거로 확장 및 축소
• 컨테이너 서비스간의 인터페이스를 통한 연결 및 네트워크 포트 노출 제어

컨테이너 오케스트레이션 도구 중 Docker기반 오케스트레이션 도구가 있습니다. 이 중 가장 많이 알려진 도구에 대해 알아보겠습니다.

Kubernetes Docker Swarm Apache Mesos
kubernetes docker swarm apache mesos
  • 구글에서 개발하였고 가장 기능이 풍부하고
    널리 사용되는 오케스트레이션 프레임워크
  • 베어 메탈, VM환경, 퍼블릿 클라우드 등의
    다양한 환경에서 작동하도록 설계되어 있음.
  • 컨테이너의 롤링 업그레이드 지원
  • 여러 개의 Docker 호스트를 함께
    클러스터링하여 단일 가상 Docker 호스트를 생성
  • 호스트 OS에 Agent만 설치하면
    간단하게 작동하고 설정이 쉬움
  • Docker명령어와 Compose를 그대로 사용가능
  • 수만 대의 물리적 시스템으로
    확장 할 수 있도록 설계되어 있음.
  • Hadoop, MPI, Hypertable, Spark같은
    응용프로그램을 동적클러스터 환경에서
    리소스 공유와 분리를 통해 자원 최적화가 가능
  • Docker 컨테이너를 적극적으로 지원함

위에서 살펴본 3가지 오케이스레이션 도구는 설정방법과 동작방식이 상당히 다릅니다.
Docker Swarm은 Docker 호스트 클러스터를 조정하기 가장 쉬운 방법을 제공하고 있고,
Kubernetes는 컨테이너 서비스 배포 및 관리에 많은 이점을 가지고 있습니다.
Apache Mesos는 대규모 클러스터링을 지원하고 특히 Hadoop, Kafka 및 Spark 와 같은 다른 서비스와 함께 응용 프로그램을 배치해야 하는 환경에 특히 적합합니다.

위에서 언급한 툴 중에 최근 많은 각광을 받고 있는 Kubernetes에 대해서 다음 시간에 좀 더 심도 있게 소개 해 드리도록 하겠습니다.