5.2.1 Rancher Desktop 소개 및 아키텍처

Rancher Desktop은 여러분의 개인 컴퓨터, 즉 로컬 환경에서 쿠버네티스와 컨테이너 관리를 위한 환경을 손쉽게 구축하고 사용할 수 있도록 도와주는 오픈소스 데스크톱 애플리케이션입니다. 복잡한 설정 과정 없이 클릭 몇 번으로 쿠버네티스 클러스터를 실행하고, 컨테이너 이미지를 빌드, 실행, 관리할 수 있는 통합 환경을 제공하는 것이 가장 큰 특징이죠. 마치 여러분의 데스크톱에 작은 데이터센터를 마련하는 것과 같다고 생각하시면 이해가 쉬울 것입니다.

Rancher Desktop의 아키텍처를 이해하는 것은 이 도구를 효과적으로 활용하는 데 중요합니다. 기본적으로 Rancher Desktop은 여러분의 운영체제(Windows, macOS, Linux) 위에서 작동하며, 필요에 따라 가상 머신(Linux 환경)을 활용하여 쿠버네티스와 컨테이너 런타임을 실행합니다. 예를 들어 Windows 환경에서는 WSL2(Windows Subsystem for Linux 2)를 기반으로, macOS에서는 Lima 가상 머신을 사용하여 Linux 환경을 구성하고 그 안에서 쿠버네티스와 컨테이너 엔진을 구동합니다. 네이티브 Linux 환경에서는 가상 머신 없이 직접 실행될 수도 있습니다. 이처럼 운영체제에 따라 최적화된 방식으로 격리된 환경을 제공함으로써, 여러분의 로컬 시스템에 미치는 영향을 최소화하면서 안정적인 쿠버네티스 환경을 제공합니다.

Rancher Desktop 소개 및 아키텍처

이 아키텍처의 핵심에는 두 가지 중요한 구성 요소가 있습니다. 바로 컨테이너 런타임과 쿠버네티스 배포판입니다. Rancher Desktop은 이 두 가지 요소에 대해 유연한 선택지를 제공하며, 이는 사용자의 다양한 요구사항을 만족시키는 중요한 장점입니다. 이제 이 핵심 요소들에 대해 좀 더 자세히 알아보겠습니다.

5.2.1.1 containerd/dockerd 런타임 선택

컨테이너를 실제로 실행하고 관리하는 소프트웨어를 컨테이너 런타임이라고 부릅니다. 쿠버네티스는 컨테이너를 오케스트레이션하는 도구이지만, 실제로 컨테이너를 생성하고 시작하며 중지하는 등의 작업은 이 컨테이너 런타임에게 위임합니다. 따라서 어떤 컨테이너 런타임을 사용하느냐는 쿠버네티스 클러스터의 동작 방식과 성능, 그리고 여러분이 컨테이너와 상호작용하는 방식에 영향을 미칩니다.

Rancher Desktop은 현재 업계에서 가장 널리 사용되는 두 가지 컨테이너 런타임, 즉 containerd와 dockerd (Moby)를 선택하여 사용할 수 있는 유연성을 제공합니다.

  • containerd: containerd는 CNCF(Cloud Native Computing Foundation)의 졸업 프로젝트로서, 컨테이너 라이프사이클 관리에 필요한 핵심 기능에 집중한 고성능 컨테이너 런타임입니다. 쿠버네티스 커뮤니티에서 표준으로 채택하고 있는 CRI(Container Runtime Interface)를 네이티브하게 구현하고 있으며, 안정성과 효율성이 뛰어나 많은 주요 클라우드 제공 업체와 쿠버네티스 배포판에서 기본 런타임으로 사용하고 있습니다. Rancher Desktop에서 containerd를 선택하면, 쿠버네티스와의 긴밀한 통합과 함께 경량화된 환경을 경험할 수 있습니다. containerd 환경에서는 nerdctl이라는 CLI 도구를 사용하여 컨테이너 이미지를 빌드하거나 컨테이너를 직접 관리할 수 있습니다. nerdctl은 기존 Docker CLI와 유사한 사용 경험을 제공하여 쉽게 적응할 수 있습니다.
  • dockerd (Moby): dockerd는 오랫동안 컨테이너 기술의 대명사처럼 여겨졌던 Docker 엔진의 핵심 데몬입니다. 많은 개발자들에게 익숙한 환경과 풍부한 생태계를 제공하며, 기존에 Docker를 사용해왔던 분들에게는 별도의 학습 없이 바로 사용할 수 있다는 장점이 있습니다. Rancher Desktop에서 dockerd를 선택하면, 여러분의 시스템에 Docker Socket(docker.sock)이 제공되어 기존의 Docker CLI나 Docker Compose와 같은 도구들을 그대로 활용할 수 있습니다. 이는 Docker 기반의 개발 워크플로우를 유지하고자 할 때 매우 유용합니다.

어떤 런타임을 선택해야 할까요? 특별한 이유가 없다면, 쿠버네티스 생태계의 표준으로 자리 잡고 있고 더 나은 성능과 효율성을 제공하는 containerd를 사용하는 것을 권장합니다. 하지만 기존 Docker 환경과의 완벽한 호환성이 필요하거나 Docker Socket을 직접 이용해야 하는 특정 도구를 사용해야 한다면 dockerd가 좋은 선택지가 될 수 있습니다. Rancher Desktop은 언제든지 설정을 통해 런타임을 변경할 수 있으므로, 필요에 따라 자유롭게 전환하며 사용해볼 수 있습니다. 이 선택지는 Rancher Desktop이 개발자의 다양한 요구와 선호도를 얼마나 잘 고려하고 있는지를 보여주는 좋은 예입니다.

Rancher Desktop: containerd vs dockerd (Moby) 런타임 비교

Rancher Desktop에서 어떤 컨테이너 런타임을 선택할지 고민되시는 분들을 위해, containerd와 dockerd(Moby 기반)의 주요 특징과 장단점을 비교하여 표로 정리했습니다. 여러분의 개발 환경과 요구사항에 가장 적합한 런타임을 선택하는 데 도움이 되기를 바랍니다.

항목 (Criterion) containerd dockerd (Moby 기반)
기본 개념 및 출처 CNCF 졸업 프로젝트. 컨테이너 라이프사이클 관리에 집중된 핵심 런타임. Moby 프로젝트 기반의 Docker 엔진 데몬. 풍부한 기능과 오랜 역사.
쿠버네티스 통합 (CRI) CRI(Container Runtime Interface)를 네이티브하게 구현. 쿠버네티스 표준 런타임. Rancher Desktop이 호환성을 제공. K8s 1.24+ 부터 dockershim은 제거되었으나, RD가 docker.sock 인터페이스를 통해 사용 가능하게 함.
주요 특징 경량성, 효율성, 표준 준수. 쿠버네티스와의 긴밀한 통합. 이미지 빌드, 볼륨/네트워크 관리 등 풍부한 기능 내장. docker.sock 제공.
성능 및 리소스 사용량 일반적으로 더 가볍고 리소스 효율적 (핵심 기능 집중). containerd 대비 약간 더 많은 리소스 사용 가능성 (다기능 데몬).
사용자 인터페이스 (CLI) nerdctl 사용 (Docker CLI와 유사한 사용법 제공). kubectl은 공통 사용. docker 및 docker-compose 사용. kubectl은 공통 사용.
생태계 및 도구 호환성 K8s 생태계 표준. 단, docker.sock을 직접 요구하는 도구와는 호환성 문제 발생 가능. docker.sock을 통해 기존 Docker 도구, IDE 플러그인, Testcontainers 등과 호환성 우수.
주요 사용 사례 쿠버네티스 중심 개발/학습, 성능/효율 중시, 최신 표준 환경 경험. 기존 Docker 워크플로우 유지, docker.sock 의존 도구 사용 필요, 익숙한 환경 선호.
학습 곡선 Docker만 사용했다면 nerdctl 학습 필요 (유사하나 새로운 명령어). Docker 경험자에게 매우 낮음 (기존 명령어 그대로 사용).
Rancher Desktop 내 유연성 GUI 설정을 통해 dockerd로 쉽게 전환 가능. GUI 설정을 통해 containerd로 쉽게 전환 가능.
권장 대상 쿠버네티스 및 클라우드 네이티브 학습/개발을 시작하는 대부분의 사용자. 기존 Docker 환경 및 도구 호환성이 매우 중요한 사용자.

요약 및 선택 가이드:

  • containerd: 쿠버네티스 생태계의 현재이자 미래 표준에 더 가깝습니다. 성능과 효율성 면에서 이점을 가지며, 쿠버네티스를 깊이 있게 이해하고 최신 클라우드 네이티브 개발 방식을 따르고자 한다면 가장 먼저 고려해야 할 좋은 선택입니다. nerdctl이라는 새로운 CLI에 익숙해지는 과정이 필요할 수 있습니다.
  • dockerd (Moby)익숙함과 호환성이 가장 큰 장점입니다. 만약 여러분의 개발 워크플로우가 docker 명령어, docker-compose, 또는 docker.sock을 필요로 하는 다른 도구들에 크게 의존하고 있다면, dockerd를 선택하는 것이 기존 환경을 유지하면서 Rancher Desktop을 사용하는 가장 부드러운 방법일 수 있습니다.

가장 중요한 점은 Rancher Desktop 내에서는 이 두 런타임 간의 전환이 매우 쉽다는 것입니다. 따라서 특별한 이유가 없다면 기본 권장 사항인 containerd로 시작해 보시고, 필요에 따라 언제든지 dockerd로 변경하여 사용해 볼 수 있습니다.

5.2.1.2 K3s 기반 쿠버네티스 제공: 가볍지만 강력한 쿠버네티스 심장

Rancher Desktop이 여러분의 로컬 머신에 매끄럽고 효율적인 쿠버네티스 환경을 제공할 수 있는 비결은 바로 그 심장에 K3s라는 특별한 기술을 품고 있기 때문입니다. K3s는 본래 엣지 컴퓨팅(Edge Computing)이나 IoT 환경과 같이 리소스가 제한적인 환경을 위해 Rancher Labs(현재는 SUSE의 일부)에서 개발한 경량 쿠버네티스 배포판(Lightweight Kubernetes Distribution)입니다. 이름의 ‘K3s’는 표준 쿠버네티스를 뜻하는 ‘K8s’보다 다섯 글자 적다는 의미를 내포하며, 그만큼 가볍다는 것을 재치있게 표현한 것입니다.

하지만 ‘가볍다’는 것이 결코 ‘기능이 부족하다’는 의미는 아닙니다. K3s의 가장 중요한 특징 중 하나는 CNCF(Cloud Native Computing Foundation)의 인증(Certified Kubernetes)을 받았다는 점입니다. 이는 K3s가 쿠버네티스의 표준 API 명세를 완벽하게 준수함을 공인받았다는 뜻이며, K3s 환경에서 개발하고 테스트한 애플리케이션은 Google Kubernetes Engine(GKE), Amazon EKS, Azure AKS 등 다른 모든 표준 쿠버네티스 클러스터에서도 동일하게 작동할 것을 보장합니다. 즉, K3s는 경량화의 이점을 누리면서도 쿠버네티스의 완전한 기능과 호환성을 제공하는, 매우 실용적인 선택지인 것입니다.

그렇다면 K3s는 어떻게 이러한 ‘가벼움’과 ‘강력함’을 동시에 달성했을까요? 여기에는 몇 가지 핵심적인 설계 철학과 최적화 전략이 숨어 있습니다.

  1. 불필요한 기능 및 의존성 제거 (Stripping Down the Extras):표준 쿠버네티스(K8s)는 오랜 역사 속에서 다양한 기능과 드라이버들을 내장해왔습니다. 하지만 이 중에는 오래된 레거시(legacy) 기능, 아직 실험 단계인 알파(alpha) 기능, 특정 클라우드 제공업체(예: AWS, Azure, GCP) 환경에 특화된 인-트리(in-tree) 플러그인 등이 포함되어 있습니다. K3s는 이러한 기능들 중 일반적인 개발, 테스트, 또는 리소스 제약 환경에서 거의 사용되지 않는 요소들을 과감하게 제거했습니다. 예를 들어, 대부분의 인-트리 클라우드 제공자 및 스토리지 플러그인을 제거하고 필요시 외부(out-of-tree) 플러그인을 사용할 수 있도록 하여 핵심 코드베이스를 훨씬 날렵하게 만들었습니다. 이는 바이너리 크기를 줄이고 잠재적인 보안 취약점을 감소시키는 효과를 가져옵니다.
  2. 핵심 컴포넌트 최적화 (Optimizing the Core):쿠버네티스 클러스터의 ‘뇌’와 같은 역할을 하는 핵심 데이터 저장소는 전통적으로 etcd라는 분산 키-값 저장소(Distributed Key-Value Store)였습니다. etcd는 고가용성(High Availability)과 데이터 일관성을 보장하는 강력한 시스템이지만, 클러스터링 구성이 필요하고 상대적으로 메모리 사용량이 높다는 단점이 있습니다. K3s는 특히 단일 노드 클러스터나 소규모 클러스터 환경을 고려하여, 기본 데이터 저장소로 SQLite라는 훨씬 가벼운 임베디드 데이터베이스를 채택했습니다. SQLite는 별도의 서버 프로세스 없이 파일 기반으로 작동하므로 설치가 간편하고 리소스 소모가 현저히 적습니다. (물론, K3s는 필요에 따라 외부의 etcd나 PostgreSQL, MySQL과 같은 다른 데이터베이스를 사용하도록 설정하는 옵션도 제공하여 유연성을 확보했습니다.) 이 선택은 K3s의 시작 속도를 높이고 메모리 요구 사항을 크게 낮추는 데 결정적인 역할을 했습니다.
  3. 단일 바이너리 패키징 (All-in-One Binary):표준 쿠버네티스를 설치하려면 API 서버, 스케줄러, 컨트롤러 매니저, Kubelet, Kube-proxy 등 여러 개의 컴포넌트 프로세스를 각각 설치하고 설정해야 합니다. K3s는 이러한 필수 컴포넌트 대부분을 단 하나의 실행 가능한 바이너리 파일 안에 통합했습니다. 이 바이너리 파일은 컨트롤 플레인(마스터 노드) 역할과 워커 노드 역할을 모두 수행할 수 있으며, 심지어 containerd와의 연동을 위한 shim, 네트워킹(Flannel) 및 DNS(CoreDNS) 같은 필수 애드온까지 포함하는 경우가 많습니다. 이 모든 것을 담고도 K3s 바이너리의 크기는 일반적으로 수십 메가바이트(MB) 수준(버전에 따라 다르지만 보통 100MB 미만)으로 매우 작습니다. 이는 복잡한 의존성 문제를 해결하고, 배포와 설치 과정을 극도로 단순화하며, 시스템 전체의 공격 표면적(attack surface)을 줄이는 효과를 가져옵니다.

이러한 영리한 최적화 덕분에 K3s는 사용자에게 다음과 같은 실질적인 혜택을 제공합니다.

  • 눈 깜짝할 사이의 설치와 시작 (Rapid Installation & Startup): 단일 바이너리 구조와 가벼운 컴포넌트 덕분에 K3s 클러스터는 몇 분, 심지어 몇 초 만에 설치되고 시작될 수 있습니다. 이는 개발자가 빠르게 환경을 구축하고 실험에 돌입할 수 있게 해줍니다.
  • 놀랍도록 낮은 리소스 요구 사항 (Minimal Resource Footprint): K3s는 단 512MB의 RAM과 1개의 CPU 코어만으로도 실행될 수 있을 정도로 리소스 요구 사항이 낮습니다. (물론 실제 애플리케이션을 실행하려면 더 많은 리소스가 필요합니다.) 이는 개인 노트북이나 구형 하드웨어, 라즈베리 파이와 같은 소형 장치에서도 쿠버네티스를 원활하게 운영할 수 있음을 의미합니다.
  • 흔들림 없는 표준 호환성 (Full Kubernetes Compatibility): 앞서 강조했듯이, K3s는 가볍지만 CNCF 인증을 받은 완전한 쿠버네티스입니다. 따라서 K3s에서 개발된 애플리케이션은 YAML 매니페스트 변경 없이 표준 K8s 환경으로 쉽게 이전될 수 있습니다. 이는 로컬 개발 환경과 프로덕션 환경 간의 간극을 줄여줍니다.

Rancher Desktop이 바로 이 강력하고 효율적인 K3s를 핵심 엔진으로 채택함으로써, 우리 같은 사용자들은 복잡한 쿠버네티스 설치 과정에 대해 전혀 신경 쓸 필요 없이, 클릭 몇 번만으로 매우 빠르고 가볍게 동작하면서도 완전한 기능을 갖춘 쿠버네티스 클러스터를 로컬 개발 환경에 즉시 마련할 수 있게 된 것입니다. Rancher Desktop은 K3s의 설치, 설정, 버전 관리, 실행 및 중지 등 모든 생명주기를 편리한 GUI 뒤에서 자동으로 처리해주므로, 우리는 오롯이 쿠버네티스를 배우고 클라우드 네이티브 애플리케이션을 개발하며 테스트하는 본질적인 작업에만 집중할 수 있습니다.

결론적으로, Rancher Desktop에 내장된 K3s는 단순한 기술 선택을 넘어, 쿠버네티스를 배우고 활용하고자 하는 모든 이들에게 낮은 진입 장벽과 높은 개발 생산성을 동시에 제공하는 핵심적인 가치 제안이라고 할 수 있습니다. 이제 이 K3s 기반의 로컬 클러스터가 실제로 어떻게 구성되고 관리되는지, Rancher Desktop의 인터페이스를 통해 더 자세히 살펴보겠습니다.

5.2.1.3 GUI 및 CLI 인터페이스: 편리함과 강력함을 동시에

Rancher Desktop의 설계 철학에서 돋보이는 또 다른 매력은 사용자와 소통하는 방식에 있습니다. 단순히 강력한 기능을 제공하는 것을 넘어, 사용자가 어떻게 이 기능들을 활용할지에 대한 깊은 고민이 담겨있죠. 그 결과물이 바로 그래픽 사용자 인터페이스(GUI)와 명령줄 인터페이스(CLI)라는 두 가지 상호작용 방식을 조화롭게 제공하는 것입니다. 이는 마치 잘 디자인된 자동차가 운전자에게 직관적인 대시보드(GUI)와 함께, 필요시 엔진을 직접 조작할 수 있는 정밀한 도구(CLI)를 함께 제공하는 것과 같습니다. 이 두 인터페이스는 각각의 명확한 장점을 가지며, 사용자의 기술 숙련도, 현재 작업의 성격, 개인적인 선호도에 따라 최적의 방식을 선택하여 사용할 수 있도록 지원합니다.

GUI (Graphic User Interface): 직관적인 제어판, 쉬운 시작의 길잡이

Rancher Desktop을 처음 실행하면, 여러분의 운영체제 환경(Windows의 시스템 트레이, macOS의 메뉴 바, 일부 Linux 데스크톱 환경의 알림 영역 등)에 작은 아이콘이 나타납니다. 이 아이콘을 클릭하면, 복잡한 설정 파일이나 명령어를 몰라도 로컬 쿠버네티스 환경의 핵심적인 부분을 관리할 수 있는 깔끔하고 직관적인 GUI 창(대시보드)이 열립니다.

Rancher Desktop 소개 및 아키텍처
  • Preferences (설정) 화면 :
  • Preferences 화면은 Rancher Desktop의 전반적인 설정을 구성할 수 있는 중심 허브입니다. 주요 탭은 다음과 같습니다:
    • Application: PATH 설정을 자동 또는 수동으로 구성할 수 있습니다.
    • Virtual Machine: 할당할 CPU 코어 수와 메모리 용량을 조절할 수 있습니다.
    • Container Engine: containerd와 dockerd(Moby) 중에서 원하는 런타임을 선택할 수 있습니다.
    • Kubernetes: 로컬 쿠버네티스 클러스터의 활성화 여부를 설정하고, 원하는 K3s 기반의 쿠버네티스 버전을 선택할 수 있습니다.
    • WSL (Windows 전용): WSL 통합 설정을 통해 Windows Subsystem for Linux와의 연동을 구성할 수 있습니다.
    • Allowed Images: 특정 이미지 패턴을 허용하여 보안 및 접근 제어를 강화할 수 있습니다.
  • Cluster Dashboard (클러스터 대시보드) : 
  • Rancher Desktop은 내장된 Rancher Dashboard를 통해 로컬 쿠버네티스 클러스터를 시각적으로 탐색하고 관리할 수 있는 기능을 제공합니다. 주요 기능은 다음과 같습니다.
    • Namespaces: 클러스터 내의 네임스페이스를 나열하고 관리할 수 있습니다.
    • Nodes: 클러스터에 속한 노드들의 상태와 리소스를 확인할 수 있습니다.
    • Workloads: 배포된 파드, 디플로이먼트 등의 워크로드를 모니터링하고 관리할 수 있습니다.
    • Service Discovery: 서비스와 인그레스 리소스를 확인하고 구성할 수 있습니다.
    • Storage: 퍼시스턴트 볼륨과 스토리지 클래스를 관리할 수 있습니다.
    • More Resources: 기타 쿠버네티스 리소스를 탐색할 수 있습니다.

이 대시보드는 쿠버네티스 클러스터의 상태를 한눈에 파악하고, 리소스를 효율적으로 관리할 수 있도록 도와줍니다.

🐳 Images 탭

Images 탭에서는 로컬 컨테이너 이미지를 관리할 수 있습니다. 주요 기능은 다음과 같습니다:

  • 이미지 목록 보기: 로컬에 저장된 컨테이너 이미지 목록을 확인할 수 있습니다.
  • 이미지 삭제: 불필요한 이미지를 선택하여 삭제할 수 있습니다.
  • 이미지 스캔: Trivy를 사용하여 이미지의 취약점을 스캔하고, 보안 이슈를 식별할 수 있습니다.
  • 네임스페이스 필터링: containerd 런타임을 사용하는 경우, 특정 네임스페이스의 이미지만 필터링하여 볼 수 있습니다.

📦 Snapshots 탭

Snapshots 탭은 현재 Rancher Desktop의 설정과 상태를 스냅샷으로 저장하고, 필요시 복원할 수 있는 기능을 제공합니다. 주요 기능은 다음과 같습니다:

  • 스냅샷 생성: 현재 상태를 스냅샷으로 저장하여, 나중에 동일한 상태로 복원할 수 있습니다.
  • 스냅샷 복원: 저장된 스냅샷을 선택하여 해당 시점의 상태로 복원할 수 있습니다.
  • 스냅샷 삭제: 더 이상 필요하지 않은 스냅샷을 삭제하여 공간을 확보할 수 있습니다.

이 기능은 실험적인 기능으로, 다양한 테스트 시나리오에서 유용하게 활용될 수 있습니다.

이 GUI는 특히 쿠버네티스나 컨테이너 기술이 아직 낯선 분들에게 다음과 같은 작업들을 마우스 클릭 몇 번으로 매우 손쉽게 수행할 수 있도록 도와줍니다.

  1. 쿠버네티스 엔진 시동/정지 (Enable/Disable Kubernetes)

Rancher Desktop의 설정 화면에서 “Enable Kubernetes” 체크박스를 통해 쿠버네티스 클러스터를 활성화하거나 비활성화할 수 있습니다. 이 옵션을 비활성화하면 containerd 또는 dockerd만 실행되며, 시스템 리소스를 절약할 수 있습니다. 비활성화 시 기존 리소스는 삭제되지 않으며, 다시 활성화하면 이전 상태로 복원됩니다.

  1. 쿠버네티스 버전 선택 (Select Kubernetes Version)

설정 화면의 “Kubernetes version” 드롭다운 메뉴를 통해 원하는 K3s 버전을 선택할 수 있습니다. 선택한 버전이 자동으로 다운로드 및 설치되며, 클러스터가 해당 버전으로 구성됩니다. 이는 특정 버전에서 애플리케이션의 호환성을 테스트할 때 유용합니다.

  1. 컨테이너 런타임 선택 (Select Container Runtime)

“Container Engine” 설정에서 containerddockerd (moby) 중 하나를 선택할 수 있습니다. containerd는 nerdctl을, dockerd는 Docker CLI를 사용하여 컨테이너를 관리합니다. 런타임을 변경하면 기존에 해당 런타임으로 생성된 이미지나 컨테이너는 새 런타임에서 사용할 수 없습니다. rancherdesktop.io+3Introduction | Rancher Desktop Docs+3Acorn Labs+3

  1. 리소스 할당 조절 (Resource Allocation)

“Virtual Machine” 설정에서 Rancher Desktop이 사용하는 CPU 코어 수와 메모리 양을 슬라이더나 입력 필드를 통해 조절할 수 있습니다. 이를 통해 로컬 머신의 성능과 다른 작업과의 균형을 고려하여 적절한 리소스를 할당할 수 있습니다.

  1. 핵심 상태 한눈에 파악 (Basic Status Check)

Rancher Desktop의 대시보드에서는 현재 쿠버네티스 클러스터와 선택된 컨테이너 런타임의 상태를 시각적인 아이콘이나 메시지로 확인할 수 있습니다. 예를 들어, 클러스터의 노드 수, 실행 중인 파드 수, 디플로이먼트 수 등의 정보를 한눈에 파악할 수 있습니다.

  1. 부가적인 편의 기능 (Additional Features)
  • 컨테이너 이미지 관리: “Images” 탭에서 로컬에 저장된 이미지 목록을 확인하고, 이미지를 가져오거나 삭제할 수 있습니다.
  • 포트 포워딩 설정: “Port Forwarding” 설정을 통해 컨테이너 내부 포트를 로컬 머신 포트로 연결할 수 있습니다.
  • 스냅샷 기능: “Snapshots” 탭에서 현재 설정과 상태를 스냅샷으로 저장하고, 필요 시 해당 스냅샷으로 복원할 수 있습니다.

이처럼 Rancher Desktop의 GUI는 복잡한 내부 동작을 추상화하여 사용자에게 쉽고 직관적인 제어 수단을 제공합니다. 터미널 명령어에 익숙하지 않은 사용자도 쿠버네티스 환경을 설정하고 기본적인 상태를 관리하는 데 어려움을 느끼지 않도록 진입 장벽을 현저히 낮춰주는 역할을 합니다. 마치 복잡한 설정 파일을 직접 편집하는 대신, 잘 정리된 설정 메뉴를 사용하는 것과 같은 편리함을 제공하는 것이죠.

CLI (Command Line Interface): 정밀한 제어와 자동화의 세계로

GUI가 일상적인 관리와 설정의 편리함을 제공한다면, 쿠버네티스 클러스터와 컨테이너를 실제로 다루는 대부분의 심층적이고 강력한 작업은 명령줄 인터페이스(CLI)를 통해 이루어집니다. 클라우드 네이티브 환경에서 CLI는 단순히 옵션이 아닌, 자동화, 스크립팅, 인프라스트럭처 코드(Infrastructure as Code) 구현, 그리고 다른 도구와의 연동을 위한 필수적인 요소입니다. Rancher Desktop은 이러한 CLI 중심의 워크플로우를 완벽하게 지원하기 위해, 필요한 핵심 CLI 도구들을 사용자의 시스템에 자동으로 설치하거나, 기존 설치된 도구를 인식하고, 적절한 환경 변수(PATH 등)를 설정하여 터미널에서 즉시 사용할 수 있도록 준비해 줍니다. 사용자는 복잡한 설치나 설정 과정 없이 바로 터미널을 열고 강력한 명령어들을 실행할 수 있습니다. Rancher Desktop 환경에서 주로 사용하게 될 핵심 CLI 도구들은 다음과 같습니다.

  • kubectl (큐브컨트롤 또는 큐브씨티엘): 쿠버네티스 클러스터와 상호작용하기 위한 사실상의 표준이자 가장 핵심적인 명령줄 도구입니다. 마치 쿠버네티스 세계의 ‘스위스 군용 칼’과 같아서, 클러스터의 상태를 조회하고(get), 리소스를 생성하며(create, apply), 수정하고(edit, patch), 삭제하는(delete) 등 쿠버네티스와 관련된 거의 모든 작업을 kubectl 명령어를 통해 수행하게 됩니다. Rancher Desktop이 실행되면, kubectl이 자동으로 설치될 뿐만 아니라, 현재 **컨텍스트(context)**가 Rancher Desktop이 생성한 로컬 K3s 클러스터를 가리키도록 ~/.kube/config 파일이 자동으로 설정됩니다. 따라서 사용자는 별도의 설정 없이 터미널에서 바로 kubectl get nodes (클러스터 노드 목록 확인), kubectl get pods (실행 중인 파드 확인), kubectl apply -f my-app.yaml (YAML 파일로 애플리케이션 배포) 같은 명령어를 실행하여 로컬 클러스터를 제어할 수 있습니다. 앞으로 이 책의 실습 과정 대부분에서 우리는 이 kubectl 도구를 광범위하게 사용하게 될 것입니다.
  • nerdctl 또는 docker: 쿠버네티스 외부에서 컨테이너 이미지 자체를 관리하거나(빌드, 푸시, 풀), 로컬에서 임시로 컨테이너를 실행하는 등의 작업을 할 때 사용합니다. 어떤 명령어를 사용할지는 Rancher Desktop 설정에서 어떤 컨테이너 런타임을 선택했는지에 따라 달라집니다.
    • containerd를 선택했다면 nerdctl 명령어를 사용합니다. nerdctl은 Docker CLI와 호환되는 명령어 문법을 목표로 개발되어, nerdctl build -t my-image ., nerdctl run -d -p 8080:80 my-image, nerdctl images 와 같이 기존 Docker 명령어와 매우 유사한 방식으로 사용할 수 있습니다.
    • dockerd(Moby)를 선택했다면, 우리에게 매우 익숙한 docker 명령어를 그대로 사용할 수 있습니다. docker build, docker run, docker ps, docker images 등 기존의 모든 Docker CLI 명령과 워크플로우를 활용할 수 있습니다.
  • helm: 쿠버네티스 세계에서 널리 사용되는 패키지 매니저입니다. 복잡한 애플리케이션은 여러 개의 쿠버네티스 리소스(Deployment, Service, ConfigMap 등)로 구성되는 경우가 많은데, Helm은 이러한 리소스들을 ‘차트(Chart)’라는 단위로 묶어서 쉽게 설치, 업그레이드, 삭제하고 버전 관리 및 의존성 관리를 할 수 있도록 도와줍니다. 예를 들어, helm install my-release stable/mysql과 같은 명령어로 복잡한 MySQL 배포를 간단하게 수행할 수 있습니다. Rancher Desktop은 종종 이 helm CLI도 함께 제공하여 사용자가 쿠버네티스 생태계의 다양한 오픈소스 애플리케이션들을 쉽게 활용할 수 있도록 지원합니다.

이처럼 CLI는 GUI가 제공하는 편리함을 넘어, 정밀한 제어, 반복적인 작업의 자동화(스크립팅), 그리고 다른 개발/운영 도구와의 통합을 가능하게 합니다. 쿠버네티스와 클라우드 네이티브 기술을 깊이 있게 활용하고자 하는 숙련된 사용자에게는 CLI 환경이 훨씬 더 강력하고 효율적인 작업 공간이 될 것입니다.

결론적으로, Rancher Desktop은 사용하기 쉬운 GUI와 강력한 CLI라는 두 가지 인터페이스를 전략적으로 제공합니다. 이를 통해 쿠버네티스를 처음 접하는 입문자는 GUI를 통해 부담 없이 시작할 수 있고, 경험이 쌓이거나 더 복잡한 작업을 수행해야 할 때는 자연스럽게 CLI로 넘어가 전문적인 역량을 발휘할 수 있습니다. GUI는 초기 설정과 상태 개요 파악에 유용하며, CLI는 실제 애플리케이션 배포, 관리, 자동화 등 심층적인 작업에 필수적입니다. 이 두 가지 세계를 매끄럽게 연결해주는 Rancher Desktop의 능력은, 유연한 컨테이너 런타임 선택권 및 경량 K3s 기반 쿠버네티스와 더불어, 이 도구를 로컬 쿠버네티스 개발 환경을 위한 매우 훌륭하고 다재다능한 선택지로 만들어 줍니다.

이제 이론적인 소개를 마치고, 다음 단계에서는 실제로 Rancher Desktop을 여러분의 openSUSE 환경에 설치하고 기본 설정을 확인하는 구체적인 과정을 함께 따라가 보겠습니다.