컨테이너 오케스트레이션

Son_Doobu96·2023년 2월 12일
0

DevOps 이론

목록 보기
21/25
post-thumbnail

■ 오케스트레이션이란 무엇인가?

orchestrate의 사전적 의미

‘to plan and organize something carefully and sometimes secretly in order to achieve a desired result’

  • Cambridge Dictionary

즉 컨테이너 오케스트레이션 도구는, 수십~수백개의 컨테이너를 관리하고자 할 때 보다 더 잘 관리하기 위한 툴이다.

■ 컨테이너 오케스트레이션 툴이 필요한 이유?

마이크로서비스로 아키텍처 트렌드가 변화함에 따라 컨테이너의 갯수가 증가했고 여기에 확장성, 장애대응등을 위한 스케일링, 레플리카까지 추가되며 그 갯수가 이제는 수백 수천개에 이르게 되었다.

그러다보니 일일히 컨테이너를 관리할 수 있는 시기가 지나게 되었고 효율적으로 컨테이너를 관리할 수 있는 툴이 필요하게 되었다.

컨테이너 오케스트레이션의 대표적인 툴로 쿠버네티스가 현재 가장 많이 사용된다.

■ 컨테이너 오케스트레이션의 기능?

Scheduling – 수 많은 서버 중 최적의 서버에 컨테이너를 배포한다. (배치 실행, 구성 관리)
Self Healing – 배포된 컨테이너에 문제가 생겼을 때 자동으로 대응한다. (자가 치유, 고가용성)
Load Balancing – 서비스 트래픽을 배포된 컨테이너에 분산 (로드밸런싱)
Auto Scaling – 서비스 제공을 위해 필요한 경우 자동으로 용량 증설 (확장성)
Rolling Update – 배포된 컨테이너 환경에 대한 업데이트 진행

■ 컨테이너 오케스트레이션이 적절하지 않은 상황

  • 여러 Tier(단계)로 나뉘어지지 않은 모놀리식 아키텍처에서는 적합하지 않습니다.

    • 모놀리식 아키텍처는 먼저 마이크로서비스 분해 전략을 세우는 것이 우선입니다.
  • 고작 서너 개에 불과한 컨테이너만을 다루려면 적합하지 않습니다.

    • 서너 개의 불과한 컨테이너는 docker-compose로도 충분합니다.
  • 비교적 단순한 아키텍처에, 스케일링이 필요하지 않은 경우 적합하지 않습니다.

    • 이후 트래픽이 증가하거나, 스케일링이 필요한 경우, 서버리스 서비스를 사용하면
      다소 저렴한 가격에 관리형 서비스를 이용할 수 있으며, AWS 내에서도 오토 스케일링과 같은
      관리형 서비스가 배포 환경에서 제공됩니다.
profile
DevOps를 꿈꾸는 엔지니어 지망생!

0개의 댓글