Docker, Kubernetes

[Kubernetes] 쿠버네티스란? 간단한 개념 및 설명 (+Docker 도커)

15호의 개발자 2021. 11. 26. 16:01
반응형

[Kubernetes] 쿠버네티스란? 간단한 개념 및 설명

 

쿠버네티스는 다수의 컨테이너를 관리하기 위한 툴로써, 컨테이너의 자동 배포와 배포된 컨테이너에 대한 동작 보증, 부하에 따른 동적 확장 등의 기능을 제공한다. 구체적으로 말하자면, 서버 트래픽 갑자기 폭발할 때 pod 생성을 늘려서 서버가 다운되지 않게 해주는 것이 쿠버네티스이다. 처음에는 다수의 컨테이너만 관리하는 도구였지만, 현재는 컨테이너 인프라에 필요한 기능을 통합하고 관리하는 솔루션으로 발전했다.

 

쿠바네티스는 구글이 오픈 소스로 공개하였으며, 2015년에 쿠버네티스 버전 1.0이 출시되었다.

 

 

쿠버네티스(Kubernetes)의 의미

Kubernetes는 그리스어로 도선사(pilot)나 조타수(helmsman)을 의미한다. 도선사는 배를 수로로 안전하게 안내하는 사람이며, 조타수는 배의 키를 조정해 올바른 방향으로 나아가게 하는 사람을 의미한다. 쿠버네티스의 로고도 배의 키를 의미한다.

 

참고로, 쿠버네티스(Kubernetes)는 K와 s 사이에 8글자가 들어갔다고 해서 짧게 K8s라고도 적는다.

 

 

도커(Docker)와 쿠버네티스(Kubernetes)의 관계

도커와 쿠버네티스의 관계는 무엇일까? 한 마디로 정의하자면 아래와 같다.

도커(Docker): 컨테이너 도구
쿠바네티스(Kubernetes): 컨테이너 관리 도구

 

컨테이너 관리 도구의 종류로는 쿠바네티스 외에도 도커 스웜(Docker Swarm), 메소스(Mesos), 노마드(Nomad) 등이 있지만, 쿠버네티스 사용율이 압도적이다.

 

 

컨테이너 인프라 환경

컨테이너 인프라 환경이란 리눅스 OS 커널 하나에 여러 개의 컨테이너가 격리된 상태로 실행되는 인프라 환경을 말한다. 개인 단위에서는 관리자 1명이 다양한 응용프로그램을 사용하므로 각각의 프로그램을 컨테이너로 구성할 필요가 없지만, 기업 단위에서는 관리자 여러 명이 수백~수천 대의 서버를 함께 관리하므로 일관성을 유지하는 것이 매우 중요하다. 이 경우 컨테이너 인프라 환경을 구성하면 snowflake server(눈송이 서버, 여러 명이 만져서 설정의 일관성이 떨어진 서버)를 방지하는 데 효과적이다.

 

가상화 환경에서는 각각의 VM(가상 머신)이 독립적인 운영 체제 커널을 가지고 있어야 하므로 자원 소모가 더 크고 성능도 떨어진다. 반면 컨테이너 인프라 환경에서는 운영 체제 커널 하나에 서로 격리된 컨테이너를 여러 개 실행할 수 있으므로 자원도 효율적으로 사용할 수 있고 속도도 더 빠르다.

 

 

 

(출처: 책 『컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커』)

반응형