티스토리 뷰

 

쿠버네티스는 요즘 표준으로 사용되고 있는 컨테이너 오케스트레이션 도구입니다.

 

 

 

 

1.1 여기서 오케스트레이션이 무엇이냐.. 

위 그림을 보시면 수많은 악기를 다루는 연주자 분들이 계십니다.

그림의 계단을 기준으로 앞(Front) 쪽에는 현악기,  뒤(Back) 쪽에는 주로 관악기/타악기들이 배치되어 있으며

그중, 가운데에는 이 모든 연주자들을 제어(Control)하는 지휘자가 있습니다.

 

이러한 악기들의 자리 배치는 누가 한 것일까요..? 

바로 지휘자가 이 음악에 가장 잘 어울리는 악기들의 갯수, 배치, 구조 등을 고려하여 최적의 연주를 지휘하는 것입니다.

이것을 바로 오케스트레이션이라 합니다. 

 

 

 

 

 

 

 

1.2 그럼 컨테이너 오케스트레이션이 무엇이냐..

 

 

컨테이너 오케스트레이션은 말 그대로 컨테이너라는 악기를 가장 효율적이고 조화롭게 배치하고 서비스하는 것입니다.

 

위 그림은 webapp, DB 파드들로 구성되어 있는 k8s 구성도입니다. ( 설명을 위해 간단하게 그린 구성도 입니다.. )

Frontend 단의 서비스들은 webapp pod이고 Backend 단의 서비스들은 DB pod 입니다.

이전에 봤던 오케스트라와 비교해서 봤을 때 webapp은 현악기, DB는 관악기/타악기, Kubernetes Master는 지휘자 로 볼 수 있습니다. 

 

 

webapp pod, DB pod 들의 사양, 이미지, 버전, 정책 등을 포함하여 어느 Worker Node에 배치 할 지, 어떻게 서비스 할 지를 Kubernetes Master Node라는 지휘자가 최적의 연주를 하는 것.. 이것을 컨테이너 오케스트레이션 이라고 할 수 있습니다. 

 

 

쿠버네티스는 도커 스웜 모드처럼 여러 대의 도커 호스트를 하나의 클러스터로 만들어 준다는 점은 동일하지만, 디테일한 기능을 더욱 폭넓게 제공하고 있기 때문에 실제 서비스 운영 단계에서는 쿠버네티스가 가장 많이 쓰이고 있습니다. 

 

 

 

 

 

 

 

1.3 쿠버네티스의 장점

- 서버 자원 클러스터링, 마이크로서비스 구조의 컨테이너 배포, 서비스 장애 복구 등 컨테이너 기반의 서비스 운영에 필요한 대부분의 오케스트레이션 기능을 폭넓게 지원

 

- Persistent Volume(지속적 볼륨), 스케쥴링, 장애 복구, 오토 스케일링, 서비스 디스커버리 및 인그레스(Ingress) 등 컨테이너 기반의 클라우드를 운영할 때 필요한 대부분의 기능과 컴포넌트를 사용자가 직접 커스터마이징 가능 

 

- 클라우드 운영 도구들과 쉽게 연동되므로 확장성이 높음 (ex. prometheus)

 

 

 

 

 

 

 

1.4 쿠버네티스의 단점

- 타 오케스트레이션 툴 보다 훨씬 다양한 지식이 필요

 

- 쿠버네티스 자체의 관리가 더욱 어려울 수도 있음

 

- 일정 규모 이상의 서비스를 제공하는 회사에서는 쿠버네티스를 도입해 더욱 안정적이고 효율적인 서비스를 제공할 수 있지만, 

소규모 조직에서는 쿠버네티스의 기능을 배우고 관리하는 것 자체가 짐이 될 수 있는 오버 엔지니어링이 될 가능성이 있음

 

- 도입하려는 서비스가 쿠버네티스에 적합한지, 인력이나 비용적인 측면에서 적합한지 분석 필요 

 

 

 

 

 

 

쿠버네티스 글 시리즈는 K8S 개념정리 -> VM 기반의 K8S -> AWS EKS -> AWS EKS with Terraform 시리즈로 진행될 예정입니다.

다음 글에선 VM기반의 K8S 설치과정을 알아보겠습니다.

댓글로 적극적인 첨언과 질문 부탁드립니다. 저도 K8S를 심도있게 알아가기 위해 처음부터 다시 공부하는 과정을 글로 남기는 중입니다.

끝까지 읽어 주셔서 감사합니다.

 

 

 

 

전문적인 내용은 아래 서적에서 많이 참고하여 작성하였습니다.

지식출처 : 도서 - 시작하세요! 도커/쿠버네티스 참조