1 minute read

컨테이너 오케스트레이션

컨테이너 오케스트레이션을 통해, 기존에 개발자가 직접 구현 및 추가가 필요했던 기능들을 보다 손쉽게, 자동화하여 사용할 수 있도록 한다.

컨테이너 클러스터링

  • 여러대의 노드를 하나의 묶음으로 취급해 App을 분산해 실행하고, 자원을 효율적으로 활용할 수 있게 한다.

서비스 디스커버리

  • 추가된 컨테이너를 자동으로 발견하고, 서비스의 이름, IP, port 등을 관리해 준다.

자동 스케일링

  • 트래픽 양에 따라 자동으로 컨테이너 수를 조절해 자원 사용량을 최적화
    • 많은 요청 -> 컨테이너 많이 올림 / 적은 요청 -> 컨테이너 적게 올림

로드 밸런싱

  • 컨테이너에 대한 트래픽이 급증하면, 로드밸런싱과 확장을 활용해 트래픽을 네트워크 전반에 분산시켜 안정성과 성능을 유지할 수 있다.
  • 개발자가 로드밸런서를 직접 설정하지 않아도 된다.

롤아웃 & 롤백

  • 새 버전의 어플리케이션을 바로 적용하게 하고, 오류가 있을 경우 이전 버전으로 rollback이 가능하게 한다.

자동 복구, 모니터링과 로깅, 보안과 네트워크 관리

작동 방식

대부분의 툴에서 선언적 구성 모델을 지원하며, 이 모델에서 개발자가 원하는 구성 상태를 정의하는 YAML/JSON 구성 파일을 작성해, 오케스트레이션 툴에서 해당 파일을 실행해 오케스트레이션을 수행할 수 있다.

호스트에 대한 컨테이너 배포를 예약하고, 호스트 환경 및 구성 파일 등에 의거해 최적의 호스트를 선택한다.

컨테이너 배포 후, 오케스트레이션 툴은 컨테이너 정의 파일(Dockerfile 등…)을 기반으로 컨테이너 어플리케이션의 라이프사이클을 관리할 수 있다.

컨테이너 오케스트레이션 서비스 / 툴

  • docker swarm
    • k8s이 등장하기 전까지 가장 많이 사용됨
  • K8s
  • Google K8s Engine (GKE)
    • 쿠버네티스 기반, k8s 기능 모두 사용 가능
  • Amazon Elastic K8s Service (EKS)
    • 쿠버네티스 기반, k8s 기능 모두 사용 가능
  • ECS
    • AWS에서 제공, 도커 컨테이너 실행하기 위한 기능 제공
    • EKS에 비해 간소화된 버전이다.
    • 컴푸팅 자원으로 EC2, ECS 혹은 외부 컴퓨팅 자원 등을 사용할 수 있다.

출처 및 참고

Leave a comment