Kubernetes 경량화 버전이란?

Kubernetes는 컨테이너를 배포 및 관리할 수 있는 강력한 플랫폼입니다. 하지만 처음부터 Kubernetes 클러스터를 구축하려면 설치 과정이 복잡하고, 클러스터 구축에 많은 리소스가 요구된다는 단점이 있습니다.

이런 어려움을 해결하기 위해, 클러스터를 가볍고 편리하게 구축할 수 있도록 도와주는 Kubernetes의 경량화 버전들이 많이 나오고 있는데요.

오늘은 이러한 Kubernetes 경량화 버전인 minikube, K3s, k0s에 대해 살펴보겠습니다.

✨다양한 운영체제에서 Kubernetes 테스트 환경을 쉽게 구축 가능한 minikube

minikube는 macOS, Linux, Windows 로컬 환경에 Kubernetes 클러스터를 쉽게 구축하도록 도와주는 툴입니다.

minikube는 기본적으로 Docker와 같은 컨테이너 런타임을 이용해서 클러스터 구성요소를 로컬에 배포 후 작동시키는데요.

최신 Kubernetes 릴리즈 버전을 꾸준히 지원하기 때문에 새로운 Kubernetes 기능을 테스트하고 싶을 때 유용하게 활용할 수 있습니다.

minikube 설치를 완료하면 CLI 환경에서 간단한 명령어로 Kubernetes 클러스터를 시작할 수 있고 직관적인 아이콘들로 구축 상황을 알려주는 등, 사용자가 편리하도록 신경을 많이 썼다는 느낌을 받을 수 있는데요.

minikube는 macOS, Linux, Windows 운영체제를 모두 지원하는 Cross-platform인 것도 장점입니다.

다만, 이번에 살펴볼 경량화 버전 중에선 가장 많은 리소스(2 CPU / 2GB RAM)가 필요하고 Docker나 Hyper-V와 같은 컨테이너 툴 혹은 가상 머신이 먼저 준비되어 있어야 한다는 단점도 존재합니다.

minikube는 Kubernetes를 학습하시는 분들에게 실습 환경으로 추천해드릴 수 있는 툴인데요. 물론 Kubernetes 관련 기능이나 애플리케이션을 테스트하는 환경으로 사용하기에도 좋습니다.

minikube 설치 안내 페이지: 링크

💫더 가벼운 Kubernetes 클러스터를 구축해주는 K3S와 K0S

다음은 Kubernetes의 경량화를 지향하는 K3SK0S입니다.

Kubernetes를 줄여서 일컫는 k8s와 비교해보면, 이 프로젝트들의 이름(K3S, K0S)에서 얼마나 가벼움을 지향하고 있는지 느낄 수 있는데요.

이 두 프로젝트들은 모두 Kubernetes 클러스터를 구축하는 데에 필수적인 구성요소들을 간추려서 단일 파일로 설치 및 실행하기 때문에 리소스 경량화클러스터 구축 간소화를 모두 얻을 수 있었습니다.

기존 Kubernetes는 클러스터의 데이터 저장소로 etcd를 사용하는데요. K3S와 K0S는 경량화를 위해 etcd보다 더 가벼운 sqlite3를 기본 데이터 저장소로 사용합니다. 물론 etcd나 MySQL 같은 다른 저장소도 지원하기 때문에, 필요한 경우라면 사용할 수도 있습니다.

이렇게 다양한 방법으로 경량화를 꾀한 K3S와 K0S의 최소 요구사항은 아래와 같습니다.

  • K3S: 1 CPU / 512MB RAM
  • K0S: 1 CPU / 1GB RAM

두 프로젝트 모두 minikube의 최소 요구사항의 절반 수준이죠.

그래서 K3S와 K0S 모두 테스트 및 배포 환경에도 적합하지만, 적은 리소스 사용량 덕에 IoT 환경에도 사용하기 적합하다고 하는데요.

다만 두 프로젝트 모두 단일 파일로 클러스터 구성요소를 작동시키는 방식이기 때문에, 현재 Linux 계열 운영체제만 공식 지원하고 있습니다.

K3S와 K0S는 Linux 환경에 익숙하시면서 Kubernetes 개발 또는 테스트 환경이 필요하신 분들에게 추천해드릴 수 있는 경량화 버전입니다.

K3S 설치 안내 페이지: 링크

K0S 설치 안내 페이지: 링크

Kubernetes를 개인적으로 실습하거나 테스트하기 위해 클러스터를 직접 구축하기엔 준비해야 할 것들이 많아서 쉽지 않을 수 있는데요.

그럴 땐 오늘 소개해드린 경량화 버전을 한번 고려해보시는 것도 좋을 듯합니다.

References