
쿠버네티스는 용도에 따라 선택 가능한 도구가 여러 가지이고, 각 도구별로 설치 방법이나 구성 방법이 다르기 때문에 어떤 도구를 선택할지 잘 판단하는 것 만으로도 절반은 한 것이라고 볼 수 있다.
개발 용도에 적합한 쿠버네티스 구성 방법은 ‘미니 쿠브(Minikube)’이다.
미니쿠브는 쿠버네티스 개발자들 중 특정한 주제에 관심을 가진 사람들이 모인 SIG(Special Interest Group)에서 만든 도구이다.
미니쿠브의 특징은 로컬 시스템에 쉽게 설치 가능하다. 리눅스, 맥OS, 윈도우를 지원하며, 설치 파일 이외에도 각 OS가 지원하는 패키지 매니저를 활용하여 편리하게 설치할 수 있다. 이렇게 설치가 간단하면서도 쿠버네티스가 제공하는 대부분의 기능을 활용할 수 있다는 장점이 있다.
또한 인텔리제이와 같은 개발 도구들과 미니쿠브를 연계할 수 있어서 내 컴퓨터에서 개발한 프로젝트가 쿠버네티스상에서 동작하는 결과를 바로 확인할 수 있다. 반면, 미니쿠브는 로컬에 설치되며 단일 노드 형태로 동작하기 때문에 다중 노드를 구성하여 수행해야 하는 작업을 하기에는 곤란하다. 또한 노드를 가상화된 형태로 생성하기 때문에 도커, 버추얼박스 등의 가상화 도구가 추가로 필요한 단점이 있다.
미니쿠브를 세 줄로 요약
-용도: 간단한 학습 및 개발 환경 구성
-장점: 설치가 쉽고 개발 도구와의 연계가 편리함
-단점: 단일 노드만 지원하며 추가적인 가상화 도구 필요
학습 및 개발 환경을 넘어 보다 실질적으로 활용 가능한 쿠버네티스 클러스터를 구성하고 싶은데 리소스가 충분하지 않다면,
k3s는 랜처랩스에서 개발한 경량의 쿠버네티스 배포판으로 현재 쿠버네티스를 관리하는 재단은 CNCF의 샌드박스 프로젝트로 육성되고 있다.
k3s의 주요 특징으로는 단일 파일로 이루어진 k3s 실행 파일을 통해 서버와 에이전트만 구동하면 쿠버네티스의 각 구성 요소가 간편하게 설치되면서 쿠버네티스 클러스터를 쉽게 구성할 수 있다는 점이다.
특히 내장 구성 요소 중 쿠버네티스의 각종 환경 정보를 저장하는 ETCD는 경량의 내장 데이터베이스인 SQLite로 대체되어 매우 가볍게 동작한다. 그래서 k3s는 사물인터넷 용도 혹은 라즈베리파이 같은 학습용 초소형 컴퓨터에도 사용할 수 있다는 장점이 있다.
k3s를 세 줄로 요약
-용도: 쿠버네티스와 완전히 호환되는 가벼운 배포판
-장점: 설치가 쉽고 시스템 리소스를 적게 사용하면서 높은 쿠버네티스 호환성을 보장함
-단점: 구조가 매우 단순하므로 높은 성능과 안정성을 요구하는 시스템에는 부적합할 수 있음.
조금 더 대규모 환경에 적합한 쿠버네티스 구성 방법을 찾는다면
랜처는 대규모 클러스터 및 기업용 환경에도 적합한 쿠버네티스 관리 플랫폼이다. 랜처는 무료로 사용할 수 있는 오픈소스 버전과 더불어 기술 지원을 받을 수 있는 상용 버전을 함께 제공한다.

랜처의 가장 큰 장점을 꼽자면, 쿠버네티스 클러스터 뿐만 아니라 운영에 필요한 모닡터링, 보안 관련 기능을 쉽게 설치할 수 있다는 점이다. 또한 추가적인 기능이 필요할 때, 사용자가 설정 방법을 고민할 필요 없이 랜처가 제공하는 마켓 플레이스에서 앱을 내려받는 것처럼 쿠버네티스 관련 도구를 설치하고 구성할 수 있다.
또한 랜처의 관리 도구를 사용해서 새로운 쿠버네티스 클러스터를 쉽게 생성하고 여러 클러스터를 한곳에서 관리할 수 있다.
이때 퍼블릭 클라우드(AWS, Azure … )와 프라이빗 클라우드를 가리지 않고 설치할 수 있기 때문에 클라우드에 대한 전문 지식이 부족해도 여러 클라우드를 동시에 활용하는 멀티 클라우드 환경을 구성할 수 있다.
다만 랜처는 대규모 시스템 관리까지 염두에 둔 플랫폼이므로 자체적인 구성 요소가 많이 포함되어 있으며 이로 인하여 다른 도구에 비해 조금 더 무거운 면이 있다.
랜처의 특징
-용도: 대규모 및 기업용 환경에서도 활용 가능한 다목적 쿠버네티스 관리 플랫폼
-장점: 기본적으로 포함되어 있는 기능이 많고 추가 도구 설치도 쉬움. 멀티 클라우드 관리 가능
-단점: 다른 두고에 비해 무거우므로 시스템 환경에 따라 적절한 고려가 필요함.
앞서 말한 도구들은 쿠버네티스의 전체적인 구성을 목적에 맞게 자동으로 설치해 주는 도구라면, 기본적인 상태의 쿠버네티스를 시스템상에 구성해 주는 도구.
다른 쿠버네티스 구성 도구들은 설치 환경까지 구성해 주는 것과 달리, kubeadm은 사용자가 기본적인 쿠버네티스 클러스터 구성 이외에 운영에 필요한 서비스, 스토리지, 모니터링 등의 세부 구성 요소를 직접 설정해야 한다.
그래서 처음 쿠버네티스를 접하는 사람들은 kubeadm을 통해서 쿠버네티스 환경을 구척하는 것이 어려울 수 있다.
앞서 말한 모든 과정을 생략하고 가장 쉽고 빠르게 쿠버네티스를 접하는 방법으로,
퍼블릭 클라우드에서 제공하는 ‘매니지드 쿠버네티스 서비스’를 이용하는 것.
사용자가 쿠버네티스 클러스터를 생성할 수 있으며, 생성된 클러스터의 관리까지 퍼블릭 클라우드에서 해주기 때문에 사용자는 쿠버네티스 기능을 사용하는 데에만 집중할 수 있게 된다.
👀 참조 자료
[K8s] 쿠버네티스란 무엇인가?
쿠버네티스 알아보기 1편: 쿠버네티스와 컨테이너, 도커에 대한 기본 개념 | 인사이트리포트 | 삼성SDS
쿠버네티스 알아보기 2편: 쿠버네티스를 만나는 여러 가지 방법 | 인사이트리포트 | 삼성SDS
쿠버네티스 알아보기 3편: 쿠버네티스를 이루고 있는 여러 가지 구성 요소 | 인사이트리포트 | 삼성SDS
서비스 개발자를 위한 컨테이너 뽀개기 (a.k.a 컨테이너 인터널)
[컨테이너 인터널 #1] 컨테이너 톺아보기
[컨테이너 인터널 #2] 컨테이너 파일시스템