DevOps BootCamp/쿠버네티스

쿠버네티스와 컨테이너 오케스트레이션

cloudmaster 2023. 5. 17. 10:06

쿠버네티스(Kubernetes, k8s)란

  • 오픈소스로 만들어진 컨테이너 오케스트레이션 도구
  • 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링하는 등의 관리 기능을 제공
    • 각기 다른 환경(온프레미스 서버, VM, 클라우드)에 대응 가능

 

무엇을 오케스트레이션 한다는 것인가?

orchestrate는 사전적 의미를 살펴보면 다음과 같음
to plan and organize something carefully and sometimes secretly in order to achieve a desired result
Cambridge Dictionary
 -> 즉 컨테이너 오케스트레이션 도구는, 수십~수백 개의 컨테이너를 관리하고자 할 때 보다 더 잘 관리하기 위한 툴
  • 이는 아키텍처의 트렌드가 모놀리식에서 마이크로서비스로 바뀌고,
  • 이로 인해서 컨테이너의 개수가 증가하고,
  • 여기에 확장성을 고려해 스케일링까지 더할 경우에 발생할 수 있는 일임

 

언제 사용하지 말아야 할까?

  • 여러 Tier(단계)로 나뉘지 않은 모놀리식 아키텍처에서는 적합하지 않음.
    • 모놀리식 아키텍처는 먼저 마이크로서비스 분해 전략을 세우는 것이 우선.
  • 고작 서너 개에 불과한 컨테이너만을 다루려면 적합하지 않음.
    • 서너 개의 불과한 컨테이너는 docker-compose로도 충분함.
  • 비교적 단순한 아키텍처에, 스케일링이 필요하지 않은 경우에는 적합하지 않음.
    • 이후 트래픽이 증가하거나, 스케일링이 필요한 경우, 서버리스 서비스를 사용하면 다소 저렴한 가격에 관리형 서비스를 이용할 수 있으며, AWS 내에서도 오토 스케일링과 같은 관리형 서비스가 배포 환경에서 제공.

 

 

언제 사용해야 하는가? 어떤 기능이 있는가?

AWS와 비슷한 기능을 제공

  • 마이크로서비스를 컨테이너 방식으로 운영하는 조직이 확장성을 고려해야 할 때
  • 무중단 서비스, 즉 고가용성을 제공해야 할 때
  • 그 밖에 다양한 기능들: 자가 치유, 배치 실행, 구성 관리, 로드 밸런싱...

 

쿠버네티스를 사용하는 사람들은 다음과 같이 사용

  • 쿠버네티스를 이용해 온프레미스 상에서 (사설) 클라우드 인프라를 구성하고,
  • 저렴한 클라우드 서비스의 일부분을 도입하여 하이브리드 형태로 구성하기도 하며,
  • 필요에 따라 쿠버네티스로 구성한 인프라를 통째로 AWS 등에 마이그레이션 합니다. (이식성)
    • 주요 퍼블릭 클라우드 공급자들은 관리형 쿠버네티스를 지원합니다. 예) AWS EKS