본문 바로가기
개발 관련 이야기

[쿠버네티스] 쿠버네티스 기본 개념 설명

by 꿈틀쓰 2023. 9. 10.

의도치 않게 갑자기 도커와 클라우드를 하게 되더니 이제는 쿠버네티스 관련 업무를 맡게 되었다.

 

하나를 깊게 파야 하는데 이것 저것 조금씩 건드리기만 하는 것 같다 ㅜㅜ

그래도 좋은 점은 새로운 기술을 배우는 게 재밌다는 것이다. 

배워도 배워도 신기술이 빠른 속도로 나오기 때문에 개발자는 죽을 때까지 공부해야한다는 말이 참 공감이 된다.

 

각설하고 오늘의 포스팅을 시작해보자.

 

 

 

이 글에서는 실습은 없고 쿠버네티스에 관하여 개념적인 설명만 할 것이다. 어떤 기술을 배우던지 그 기술의 개념을 잘 이해한 후에 시작하는 것이 좋은 프로그램을 개발하는 시작점이라고 생각한다.

 

 

쿠버네티스가 무엇인가?

 

쿠버네티스 조타키 모양 로고

 

쿠버네티스는 k8s, Kubernetes, 큐브, kube라는 많은 별명을 가지고 있는 아이이다.

 

클러스터 환경에서 컨테이너화된 애플리케이션을 자동으로 배포/관리/확장하는데 필요한 프로세스를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼이다.

 

 

 

 

컨테이너란 정확히 무엇인가?

 

애플리케이션을 어떤 환경에서나 실행하기 위해서 필요한 모든 요소를 포함하는 경량 소프트웨어 패키지이다. 즉, 물리적인 서버 안에서 논리적인 공간을 할당 받아 그 안에서 애플리케이션을 실행하는 것이다.

 

마치 그 공간(컨테이너)은 물리적 서버와 별도의 서버인 것처럼 느껴진다.

 

말만 들으면 VM(Virtual Machine)과 뭐가 다르냐 하겠지만, 소프트웨어를 격리된 환경에서 실행한다는 것 이외에는 다른 점이 많다. 

 

출처 : RedHat 홈페이지

 

1. 컨테이너는 OS 수준에서 가상화되고 VM은 하드웨어 수준에서 가상화된다

  - 하이퍼바이저 위에 자신의 GUEST OS를 포함하고 있다.

 

2. VM보다 훨씬 경량이다

  - 컨테이너는 일반적으로 MB 단위이고, VM은 일반적으로 GB 단위이다.

  - VM은 자체 OS를 포함하고 있기 때문에 크기가 더욱 크다.

 

3. 컨테이너는 OS 커널을 공유하며 VM에 필요한 것보다 훨씬 적인 메모리를 사용한다

  - 컨테이너는 OS의 자원을 컨테이너들끼지 공유하기 때문에 VM보다는 덜(?) 격리된 환경이라고 볼 수 있다.

  - OS 커널 공유 덕분에 VM 보다 훨씬 경량이며 적은 메모리를 사용하게 되는 것이다.

 

 

 

 

컨테이너를 오케스트레이션 한다는 의미

 

위에서 쿠버네티스는 클러스터 환경에서 컨테이너를 오케스트레이션하는 플랫폼이라고 했다. 컨테이너는 무엇인지 알았으니 "오케스트레이션"이란 정확히 뭘 한다는 것일까?

 

오케스트레이션의 우리말 정의는 "통합, 결집, 편성; 조직화; 조정"이다. 

 

네이버 어학사전 결과

 

컨테이너를 오케스트레이션한다는 것은 여러 곳에 분산되어 있는 컨테이너를 잘 조직화한다는 의미이다. 좀 더 구체적으로 말하면 사용자의 부하에 따라서 소스코드에 정의된 내용을 기반으로 자동으로 컨테이너를 배포/관리/확장/네트워킹을 자동화한고 의도한 상태(desired state)로 클러스터를 관리한다는 뜻이다. 이를 사용하면, 어떤 환경에서도 재설계가 필요없이 동일한 애플리케이션을 재포하는데 도움이 된다.

 

 

 

 

왜 쿠버네티스인가?

 

사실 컨테이너 오케스트레이션 툴은 여러가지가 있다. Docker Swarm, Openshift, Hasicorp Nomad, Rancher, GKE 등등... 그런데 쿠버네티스가 가장 인기있는 툴일까?

 

1.  이 분야에서 쿠버네티스가 선두주자이다

  - 컨테이너 오케스트레이션의 선발주자로 안정된 성능과 그로 인한 많은 레퍼런스가 사용편의성을 증가시켰다고 본다.

 

2. 데이터센터 운영의 표준

  - 다른 플랫폼들은 모두 이 쿠버네티스를 기반으로 솔루션을 지원하고 있다.

  - 쿠버네티스가 이 분야의 표준으로 자리 잡았다는 의미는 이 툴을 사용할 줄 알면 다른 툴로 넘어가도 사용하기 쉽다는 의미이다.

 

3. 오픈소스이다

  - 오픈소스 플랫폼이기 때문에 특정 기업에 종속되지 않는다.

  - Vendor lock-in 문제가 없다.

 

 

이러한 여러가지 이유로 현재 컨테이너 오케스트레이션 툴 중 1위가 바로 쿠버네티스이다. 그만큼 커뮤니티도 크고 자료도 많아서 시작하기 좋은 툴이지 않을까 생각한다.

 

댓글