본문 바로가기
CKA

1. (Core Concepts) 쿠버네티스란

by lazies 2022. 3. 24.

** 참고 : https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

쿠버네티스란 무엇인가?

https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

 

쿠버네티스는 컨테이너화된 서비스를 관리하기 위한 오픈 소스플랫폼이다. 가장 중요한 특징으로는 컨테이너화확장 가능성, 쉬운 이식성을 꼽을 수 있다. 초기의 서비스 배포는 물리적인 서버를 통해 실행했다. 당시 하나의 물리 서버에서 여러 애플리케이션을 실행할 경우 애플리케이션 간 리소스할당에서 문제가 발생하기 쉬웠다. 각 애플리케이션이 차지하고자 하는 리소스의 양이 서로 다르기 때문에 이를 관리해주기가 어려웠던 것이다. 따라서 당시 해결책은 물리 서버를 여러 대를 두고 각 물리 서버마다 하나씩 애플리케이션을 실행시키는 것이었다.

 

두 번째로 등장한 VM(Virtual Machine, 가상 시스템)는 단일 물리 서버 하나에서 여러 가상 시스템을 실행할 수 있도록 해준다. 너무도 당연하게 물리 서버에는 하드웨어가 하나(세트?) 존재하고 OS도 하나(Host OS) 존재한다. 여기서 Hypervisor 라는 가상머신 생성 및 구동 소프트웨어를 이용하면 독립적인 OS(Guest OS)를 가지는 가상 시스템(VM)을 실행할 수 있게 된다. 이 VM들은 서로 격리 되어 있기 때문에 일정 수준의 보안성이 보장되고 단일 머신을 사용할 때보다 리소스를 효율적으로 사용할 수 있어 비용이 절감된다. 하지만 개별 OS와 여타 구성요소(Binary, Library)를 모두 띄워야 하므로 당연히 무거울 수밖에 없다.

 

세 번째로 등장한 컨테이너(Container)는 VM과 유사하지만 Guest OS를 독립적으로 올리지 않고 Host OS를 공유한다. 또한 하이퍼바이저가 아니라 도커와 같은 Container Runtime Engine 이 필요하다. 컨테이너 자체 파일 시스템, 메모리, 프로세스 공간 등이 있음은 물론 OS가 별도로 필요하지 않기 때문에 VM에 비해서 가볍다는 특징이 있다. 게다가 Host OS가 무엇이든지 간에 도커와 같은 Container Runtime Engine 만 있다면 어디서든 배포될 수 있다는 어마무시한 장점이 있다. 장점이 있는 만큼 단점도 존재하게 되는데 컨테이너는 VM에서 격리 수준을 완화한 만큼 커널을 공유하기 때문에 보안적인 측면에서 상대적으로 불안정할 수 있다는 사실이 바로 그것이다.

 

컨테이너로 서비스를 배포했을 때 운영하는 과정에서 문제가 발생하면 어떻게 될까? 컨테이는 가볍고 빠르다는 장점이 있기 때문에 단순히 동일한 컨테이너를 재시작하는 것으로 쉽게 해결할 수 있다. 물론 사람이 24시간 모니터링하면서 문제가 생길 때마다 재시작할 것이 아니라 자동화해야하기 때문에 쿠버네티스를 이용해야 한다. 쿠버네티스는 다음 특징을 갖는다.

 

1. 컨테이너에 대한 트래픽 로드 밸런싱

2. 스토리지 오케스트레이션(확장, 관리 등)

3. 자동화된 롤아웃과 롤백(배포, 제거 등)

4. 자동화된 빈 패킹(bin packing) - 컨테이너간 리소스 활용 최적화

5. 자동화된 복구(self-healing)

 

 

 

'CKA' 카테고리의 다른 글

CKA 취득 후기  (0) 2022.05.18