본문 바로가기

IT

[Container] Container Orchestration

Container Orchestration


1. Container Orchestration (컨테이너 오케스트레이션)?

Container Orchestration은 독립적으로 구성되어 있는 각 Container 들의 프로비저닝 및 배포, 네트워크 구성, 스케일링, 생명주기 관리 등을 체계화한 것을 의미합니다. Container Ochestration은 아래와 같은 기능을 가능하게 합니다.

  • Container를 연결된 클러스터에 필요한 복제(Replica) 수만큼 부하 분산을 고려하여 배포
  • 연결된 서버 가동이 중단 시 다른 서버로 현재 Container 구성을 유지하며 재배포 및 장애복구 수행
  • Container service를 통한 네트워크 연결
  • Container service 내 로드 밸런싱

2. Container Orchestration 이점

Container Orchestration은 앞서 설명한 기능들을 지원하면서 어떤 이점을 갖는 걸까요? 우선, MSA를 Container 기반으로 서비스를 구성하게 되면 서비스 규모에 따라 굉장히 많은 수의 Container 관리 포인트가 생길 수 있습니다. 이를 운영하기 위한 배포 및 장애 복구 프로세스의 자동화가 필요했기 때문에 MSA와 Container Orchestration은 함께 하기 적합한 관계를 갖게 됩니다. 또한, 자동화를 통해 빠른 주기의 개발 및 배포가 가능하기 때문에 DevOps, CI/CD를 적용하기에도 큰 이점으로 작용할 수 있습니다.

출처: https://www.splunk.com/en_us/blog/learn/container-orchestration.html

3. Container Orchestration 도구

그러면 Container Orchestration을 지원하는 도구는 무엇이 있을까요? Container 도구 중 가장 많이 사용되는 Docker를 지원하는 Orchestration 도구들을 간략하게 비교해 보겠습니다. 각 도구들에 대한 보다 자세한 설명은 다른 포스팅으로 대신합니다.

  • Kubernetes
    • Go언어 기반으로 구축
    • Google에서 개발하여 가장 널리 사용되며 생태계가 잘 갖춰져 있음
    • YAML 기반으로 deployment 세팅을 지원
    • 오토 스케일링, 로드 밸런싱, 보안 등 다양한 내장 기능이 있어 추가적인 third-party 구성이 상대적으로 적음
    • Pod 스케줄링을 통해 복잡한 컨테이너 기반 애플리케이션 배포 상황에 적합
    • 마스터서버가 구분되어야 함
  • Docker Swarm (바로가기)
    • Go언어 기반으로 구축
    • Docker를 기반으로 구축되어 호환성이 가장 높고, Docker 1.12 버전부터는 아예 Docker Swarm이 내장되어 있음
    • YAML 기반으로 deployment 세팅을 지원
    • 고가용성 보장은 가능하지만 오토 스케일링은 지원되지 않음
    • 단독 서버에서도 구축이 가능하며 Kubernetes, Apach Mesos에 비해 클러스터 및 서비스 세팅 난도가 낮음
  • Apache Mesos
    • C++언어 기반으로 구축
    • Kubernetes, Docker Swarm에 비해 물리적인 확장성이 매우 뛰어나며 컨테이너와 함께 일반 응용프로그램을 조합하는 아키텍처에서도 자원 관리가 용이하여 거대한 규모의 클러스터 구성에 적합
    • JSON 기반으로 REST API를 통한 deployment 세팅을 지원
    • 마스터서버가 구분되어야 하며, Zookeeper를 통해 마스터노드 고가용성을 보장

 


연관 게시글

[DevOps] DevOps 란?

 

[DevOps] DevOps 란?

1. DevOps? 몇 년 전부터 IT 분야에 종사하거나 관심이 있는 분들은 DevOps라는 말을 한 번쯤은 들어보셨을 겁니다. DevOps는 특별한 소프트웨어 또는 기술이 아니라 문자 그대로 개발(Dev)과 운영(Ops)이

brightchords.tistory.com

[CI/CD] CI/CD 란?

 

[CI/CD] CI/CD 란?

1. CI (Continuous Integration) CI는 “지속적 통합 (=Continouous Integration)” 의 줄임말입니다. 일반적으로 변경된 코드가 하나의 코드로 통합되기까지는 아래 3단계를 거치게 됩니다. 개발자가 변경한 코

brightchords.tistory.com

[Docker] Docker Swarm 이란?

 

[Docker] Docker Swarm 이란?

Docker Swarm 이란? 1. Docker Swarm? Docker swarm은 Docker에서 제공하는 Container orchestration 기능입니다. 2. Why Docker Swarm? Docker Swarm은 Docker 1.12 버전부터는 아예 내장되어 있기 때문에 Docker 설치 이후에 별도

brightchords.tistory.com


참조

 

'IT' 카테고리의 다른 글

[Docker] Docker Swarm 이란?  (0) 2024.02.21
[Docker] Docker 란?  (0) 2024.02.20
[Container] Container 란?  (0) 2024.02.18
[CI/CD] CI/CD 란?  (0) 2024.02.12
[DevOps] DevOps 란?  (0) 2024.02.12