컨테이너 오케스트레이션
: 여러 컨테이너의 배포 프로세스를 최적화 하기 위한 자동화 도구
: 복잡한 컨테이너 환경을 효과적으로 관리
: 서버 괸리자의 역할을 대신 수행
ㆍ컨테이너 오케스트레이션의 기능
: 컨테이너 자동 배치 및 복제
: 컨테이너 그룹에 대한 로드 밸런싱
: 컨테이너 장애 복구
: 클러스터 외부에 서비스 노출
: 컨테이너 추가 또는 제거로 확장 및 축소
: 컨테이너 서비스간의 인터페이스를 통한 연결 및 네트워크 포트 노출 제어
대표적인 컨테이너 오케스트레이션 도구
ㆍ쿠버네티스 (Kubernetes)
: 구글에서 개발한 가장 널리 사용되는 오케스트레이션 프레임워크
: 베어메탈, VM환경, 퍼블릭 클라우드 등의 다양한 환경에서 작동
: 컨테이너의 롤링 업그레이드 지원
: 강력한 컨테이너 서비스 배포 및 관리 기능
ㆍ도커 스웜 (Docker Swarm)
: Docker 호스트 클러스터를 조정하기 가장 쉬운 오케스트레이션 프레임 워크
: 여러 개의 Docker 호스트를 함께 클러스터링하여 단일 가상 Docker 호스트를 생성
: 호스트 OS에 Agent만 설치하면 간단하게 작동하고 설정이 쉬움
: Docker 명령어와 Compose를 그대로 사용가능
ㆍ아파치 메소스 (Apache Mesos)
: 수만 대의 물리적 시스템으로 확장할 수 있도록 설계된 오케스트레이션 프레임워크
: 하둡, MPI, Hypertable, Spark 같은 응용프로그램을 동적 클러스터 환경에서 리소스 공유와
분리를 통해 최적화 가능
: Docker 컨테이너를 적극적으로 지원
: 다른 서비스와 함께 응용프로그램을 배치하기에 적합
쿠버네티스
: 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화 해주는 가장 널리 사용되는 오픈소스 플랫폼
: yaml을 이용하여 클러스터의 모든 서비스를 정의
: POD 스케줄링을 통해 복잡한 애플리케이션의 배포 관리 가능
: 하나의 마스터 서버와 노드가 필요
: Discovery layer, Master Layer의 각 레이어에서 최소한 3개씩 필요
ㆍ특징
: Planet Scale (수 많은 컨테이너를 구동할 수 있는 확장성)
: Never Outgrow (다양한 요구 사항을 만족시킬 수 있는 유연함)
: Run Anywhere (온프레미스, 퍼블릭 클라우드, 하이브리드 환경 어디서나 동작)
ㆍ쿠버네티스를 기반으로한 플랫폼
: kubeflow (ML)
: TEKTON (CI/CD)
: lstio (Service Mesh)
: Knative (Serverless)
도커 스웜
: 도커 기반에서 컨테이너 클러스터를 만들고 관리하는 툴
: 쿠버네티스에 비해 설정이 쉽다는 장점을 가짐
: manager 노드와 worker노드를 통해 컨테이너를 관리
ㆍ구성
: manager node (클러스터의 상태 유지 및 스케줄링 <worker 노드에 컨테이너 배포>)
: worker node (애플리케이션이 실행되는 노드)
※ 도커 컴포즈
: 여러 개의 도커 컨테이너를 동시에 실행하는 툴
: 여러 개의 컨테이너들은 모두 localhost에 노출되어 있는 싱글 호스트 형태
: yml파일을 통해 관리
=> Docker Swarm과 달리 스케줄링 등의 기능을 제공하지 않으며
단순히 여러 개의 컨테이너를 한꺼번에 실행하는 기능만을 가짐
Mesos
: Json 기반으로 작동하는 컨테이너 오케스트레이션
: 하나의 마스터, 하나의 슬레이브 구조
: 최소 3개의 마스터와 여러 개의 슬레이브가 필요
: 대~초대형 스케일 클러스터에 적합한 도구
Refference
'Container > Container' 카테고리의 다른 글
웹 어셈블리와 컨테이너 (0) | 2024.11.30 |
---|---|
컨테이너의 개념과 원리 (5) | 2024.09.22 |
컨테이너 오케스트레이션의 필요성 (0) | 2023.06.17 |
멀티 호스트 환경에서의 컨테이너 관리 (0) | 2021.10.19 |