클라우드/쿠버네티스

[Kubernetes] 1. 쿠버네티스란 무엇인가?

윤창이 2021. 1. 4. 15:54
728x90

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다!

피드백 부탁드립니다. (- -)(_ _) 꾸벅

kubernetes logo


쿠버네티스?

 그리스어로 키잡이라는 뜻. 로고도 그냥 키처럼 생겼다. 쿠버네티스는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템으로, 오픈소스 기반이다. 다시 말해 Docker가 컨테이너화 하는 툴이었다면, 쿠버네티스는 그 컨테이너 관리를 자동화하는 오픈소스 플랫폼이라 할 수 있을 것 같다. 즉 컨테이너들을 오케스트레이션(Orchestration)하는 관리툴을 이용하면 Container의 관리를 자동화할 수 있다는 뜻이다. 

Docker Swarm

 사실 쿠버네티스는 다른 컨테이너 오케스트레이션 툴보다 늦게 등장했다고 한다. 그 전에는 Docker에서 지원하는 Docker Swarm이 비교적 간단한 사용법과 Docker 명령어와 Compose를 그대로 사용 가능하기에 널리 쓰이고 있었고, 그 외에도 Apache Mesos, ECS, Nomad 등의 툴이 있었다. 다양한 툴마다 각각의 장단점이 있었고, 이는 한동안 강자 없는 Container Orchestration 춘추전국시대가 열렸다고 한다.

 

symphony orchestra (출처 : KBS 교향악단)

 이러한 혼란한 시대와 중에 등장한 툴이 있었는데.. 바로 쿠버네티스(Kubernetes, k8s)!! 쿠버네티스는 컨테이너들을 조율하는 오케스트레이션 툴 중 가장 각광이 받는 지휘자이다. 요즘에는 De facto(사실상 업계표준)가 돼버린 쿠버네티스는 어떠한 강점이 있길래 왕좌에 오를 수 있었을까?

 

 먼저 쿠버네티스의 몇 가지 수식어를 알아보자(Araboza).

“운영환경에서 사용 가능한(production ready)”
“de facto(사실상 표준)”
“조타수(helmsman)”
“조종사(pilot)”
“행성 스케일(Planet Scale)”
"k8s (쿠버네티스의 앞,끝 글자와 그 사이 글자 수)"

행성 스케일이라는 말 너무 멋있당.. 쿠버네티스는 대규모 컨테이너를 관리하던 구글의 borg를 기반으로 시작되었고, 그 덕분에 대규모 컨테이너를 관리했던 구글의 노하우와 강력한 확장성, Microsoft, Red Hat, IBM 등 수많은 기업의 참여, 잘 짜인 설계가 쿠버네티스가 원픽이 될 수 있게 하였다고 한다.

 


Container Engine vs. Container Orchestration

 

  Container Engine Container Orchestration
기능 운영체제와 명확하게 분리하여 컨테이너 환경을 만들어주는 것  컨테이너 환경을 관리해주는 것
deployment(배포), scailing(확장), connect(연결) 
Predecessors/
Alternatives
Virtual Machines, 직접 설치 Homegrown scripts, 컨테이너 사이의 고정된 설정
패키지 - Docker
- RKT
- LXC
- Mesos
- CRI-O
- Kubernetes
- Docker Swarm
- Mesos

 

위에 설명했듯이 컨테이너를 만들어 주고, 관리해주는 것에 차이가 있다. 쿠버네티스는 그 컨테이너 환경을 deployment(배포), scailing(확장), connect(연결)를 통해 관리해주는 역할을 한다. 참고로 쿠버네티스는 구글의 내부 프로젝트인 Borg가 시초이고 현재는 리눅스 재단의 Cloud Native Computing Foundation (CNCF)에서 관리하고 있다고 한다. 

 

 위 그림은 하나의 Cluster를 나타낸 그림이다. Docker 같은 컨테이너 엔진으로 생성된 컨테이너들을 하나의 클러스터로 관리하기 위해 "쿠버네티스 마스터"는 가장 이상적인(할 일이 없는) 노드를 찾아 올려준다. (Deploy)

 

쿠버네티스는 어디서든 실행 가능하다. 마스터 서버 따로 노드 서버 따로 위치해 있을 수도 있고, 교육용 미니큐브처럼 한 곳에 뭉쳐있을 수도 있다. 어떤 결합이든 상관이 없는 분산 구조로 유연성을 자랑한다.

 

 

https://kubernetes.io/docs/home/

앞으로의 쿠버네티스를 공부할 때 쿠버네티스 공식 사이트의 documentation을 참고할 것 같으니 여기까지 적고 다음 편에서 이어 적어야겠다.

나중에 안 사실인데 한국어로 번역된 홈페이지도 지원한다. (kubernetes.io/ko/docs/home/)

 

 

기본적으로 쿠버네티스는 가상화를 기반으로 한 동작들이므로 가상화에 관련된 내용은 전 포스트에서 관련 내용을 찾아볼 수 있다.

2021.01.03 - [클라우드] - [Docker] 1. Docker란 무엇인가?

 

[Docker] 1. Docker란 무엇인가?

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다! 피드백 부탁드립니다. (- -)(_ _) 꾸벅 들어가며  나는 개인 NAS서버를 다루면서 Docker를

yoonchang.tistory.com

 

728x90