Kubernetes/Kubernetes_Service

[Kubernetes] 쿠버네티스란?

달콤한달팽이 2021. 11. 15. 09:53
반응형

안녕하세요, 달콤한달팽이입니다.🐌🙂

 

요즘 클라우드 기술 스택 중 가장 많이 요구되는 쿠버네티스에 대해 함께 공부해볼 예정입니다.

 

다양한 실습을 해보기에 앞서 쿠버네티스란 무엇인지부터 아는 것이 우선일 것 같아 이번 글을 준비해보았습니다!


쿠버네티스(Kubernetes)란?

쿠버네티스란, 컨테이너화된 애플리케이션을 배포, 관리, 확장할 때 사용되는 컨테이너 오케스트레이션 플랫폼입니다.

(K와 S 사이에 8글자가 들어있어 K8S라고도 불려요!)

 

공식 문서에서 제공하는 설명으로, 한 문장밖에 안되지만 처음보는 단어들이 많아보입니다.

(컨테이너화된..? 오케스트레이션...??)

 

그렇다면 컨테이너는 무엇이고, 오케스트레이션 플랫폼은 무엇일까요??

 

컨테이너(Container)란?

컨테이너란 프로세스가 수행되는 운영 환경을 별도로 제공해주는 기술입니다.

 

예들 들어, A는 1.0.1 버전에서 수행되어야하고, B는 1.3.2 버전에서 수행되어야 한다면?

A와 B가 다른 OS에서 구축해야되고, 네트워크 설정이 달라야한다면??

A를 여러 서버에서 구동하려고 하는데, 서버 환경을 일일히 구축해야한다면???

 

이렇듯 애플리케이션마다 필요한 환경이 다르고,

환경이 동일할지라도 반복적인 환경 구성이 필요할 경우 매우 불편할 것입니다.

 

때문에 프로세스를 분리하는 방법을 고안하기 시작하였고, 이는 아래와 같이 발전하게 되었습니다.

 

아마 다른 컨테이너 관련 설명글에서도 많이 보셨을텐데요!

 

Traditional Deployment: 초기에는 하나의 OS에서 여러 애플리케이션을 띄웠습니다.

Virtualized Deployment: 이후 가상머신이 등장하여 하나의 OS에서 여러 가상 OS를 띄워 애플리케이션을 띄웠습니다.

Container Deployment: 현재 컨테이너를 사용하여 여러 OS에서 여러 가상 OS를 띄워 애플리케이션을 띄우고 있습니다.

 

Virtualized Deployment와 Container Deployment는 언뜻보기에 비슷해보이지만, OS 가상화로 인한 차이가 존재합니다.

OS 가상화를 통해 호스트 OS와 가상화 OS간 커널만 공유하여 호스트에게 부담이 적고, 실행속도가 빨라지게 됩니다.

 

여기서 컨테이너의 장점이 두드러지게 되죠!

  1) 자원 관리가 용이하다. (사용자가 컨테이너별 CPU, 메모리를 분할할 수 있기 때문)

  2) 실행 속도가 빠르다. (실제 OS를 띄우는 것이 아니기 때문)

  3) 배포 및 관리가 용이하다. (컨테이너를 이미지화 하여 관리할 수 있기 때문)

 

오케스트레이션이란?

오케스트레이션이란, 복잡한 구성을 관리하기 용이하도록 애플리케이션, 서비스 구성, 관리, 조정을 자동화하는 것을 의미합니다.

 

그래서 쿠버네티스(Kubernetes)란?

결국 쿠버네티스란,프로세스가 수행되는 운영 환경을 별도로 제공해주는 컨테이너로 구성된 애플리케이션을 보다 편하게 관리하도록 사용되는 플랫폼을 의미합니다.

(참고로 AWS에서는 EKS라고 하는 서비스를 통해 쿠버네티스 기능을 제공합니다!)

 

설명은 조금 더 길어졌지만 아까보다 훨씬 더 이해가 잘된다면 성공입니다 :) 


 

이번 글에서는 쿠버네티스란 무엇인가?에 대하여 알아보았습니다.

 

이제 다음 글에서는 쿠버네티스가 어떠한 방식으로 작동되는지,

이를 사용하려면 어떻게 해야하는지 등에 대하여 알아보도록 하겠습니다.

 

감사합니다!

반응형