5.2.3 Rancher Desktop 환경 확인
이제 openSUSE 시스템에는 이제 Rancher Desktop이 성공적으로 설치되고 기본적인 초기 설정까지 완료된 상태일 것입니다. 하지만 설치가 완료되었다고 해서 모든 것이 끝난 것은 아닙니다. 우리가 구축한 로컬 쿠버네티스 클러스터가 정말로 의도한 대로 작동하는지, 그리고 앞으로 우리가 내릴 명령들을 받아들일 준비가 되었는지 최종적으로 확인하는 과정이 반드시 필요합니다. 이는 마치 자동차 정비를 마친 후 시동을 걸어보고 계기판을 확인하며 모든 것이 정상인지 점검하는 것과 같습니다.
이 최종 점검 과정에서는 쿠버네티스와 소통하는 우리의 핵심 도구, 바로 kubectl 명령줄 인터페이스(CLI)를 사용하게 됩니다. Rancher Desktop은 실행 시 이 kubectl 도구를 자동으로 설치하거나 시스템에 이미 설치된 것을 사용 가능하도록 환경을 구성해 주므로, 우리는 터미널을 열고 몇 가지 간단한 명령어를 실행하여 클러스터의 상태를 진단해 볼 수 있습니다.
5.2.3.1 kubectl 설정 확인 (kubectl config current-context)
가장 먼저 확인해야 할 것은 kubectl 명령어가 어떤 쿠버네티스 클러스터를 대상으로 명령을 내릴 것인지 정확히 알고 있는지 여부입니다. 여러분의 컴퓨터에는 여러 개의 쿠버네티스 클러스터(예: 로컬 클러스터, 원격 개발 클러스터, 운영 클러스터 등)가 설정되어 있을 수도 있습니다. kubectl은 ~/.kube/config 라는 특별한 설정 파일(여러분의 홈 디렉토리 아래 .kube 폴더 안에 있는 config 파일)을 참조하여 사용 가능한 클러스터들의 목록과 접속 정보, 그리고 현재 기본적으로 어떤 클러스터를 사용할지를 관리합니다. 이 파일 안에 정의된 각 클러스터 설정 단위를 컨텍스트(Context)라고 부릅니다. 컨텍스트는 특정 클러스터(어디에 접속할지), 사용자(누가 접속하는지), 그리고 네임스페이스(클러스터 내의 어떤 작업 공간을 기본으로 사용할지)의 조합으로 구성됩니다.
우리가 지금 확인하려는 것은, Rancher Desktop이 성공적으로 실행되면서 자신이 생성한 로컬 K3s 클러스터에 대한 컨텍스트 정보를 ~/.kube/config 파일에 자동으로 추가하고, 이 컨텍스트를 현재 사용될 기본 컨텍스트로 설정했는지입니다. 이를 확인하기 위해 터미널을 열고 다음 명령어를 입력해 보세요.
이 명령어는 kubectl에게 “네가 지금 기본적으로 명령을 내릴 대상으로 설정된 컨텍스트의 이름이 무엇이니?”라고 묻는 것입니다. Rancher Desktop이 정상적으로 설정되었다면, 다음과 유사한 출력을 볼 수 있을 것입니다.
출력되는 이름은 정확히 rancher-desktop이 아닐 수도 있지만(버전이나 설정에 따라 약간 다를 수 있음), 중요한 것은 이 명령어가 오류 없이 특정 컨텍스트 이름(Rancher Desktop과 관련된 이름)을 보여주는지 여부입니다. 만약 “rancher-desktop” 또는 이와 유사한 이름이 출력된다면, 이는 kubectl이 앞으로 우리가 내릴 명령들을 방금 설치하고 설정한 Rancher Desktop의 로컬 K3s 클러스터로 정확하게 전달할 준비가 되었음을 의미합니다. 성공적인 첫 번째 확인입니다! 만약 오류가 발생하거나 예상치 못한 다른 컨텍스트 이름이 보인다면, Rancher Desktop 설치나 초기 설정 과정에 문제가 있었을 수 있으므로 이전 단계를 다시 점검해 볼 필요가 있습니다.
5.2.3.2 클러스터 정보 확인 (kubectl cluster-info)
이제 kubectl이 올바른 목적지를 가리키고 있음을 확인했으니, 실제로 그 목적지, 즉 로컬 쿠버네티스 클러스터와 성공적으로 통신할 수 있는지 시험해 볼 차례입니다. 클러스터가 단순히 존재하는 것을 넘어, 실제로 요청에 응답하고 살아 숨 쉬고 있는지 확인하는 것이죠. 이를 위해 다음 명령어를 사용합니다.
이 명령어는 kubectl을 통해 현재 컨텍스트로 설정된 클러스터의 핵심 컴포넌트들, 특히 쿠버네티스 컨트롤 플레인(Control Plane, 과거에는 마스터(Master)라고 불림)의 API 서버 주소와 클러스터 내부 DNS 서비스(K3s의 경우 보통 CoreDNS)의 위치 정보를 요청합니다. 컨트롤 플레인은 클러스터 전체를 관리하고 조율하는 두뇌와 같은 역할을 하며, API 서버는 우리가 kubectl 등을 통해 내리는 모든 명령을 가장 먼저 받아 처리하는 관문입니다.
명령어를 실행했을 때, 다음과 유사한 형태의 출력을 기대할 수 있습니다. (정확한 주소나 포트 번호는 여러분의 환경마다 다를 수 있습니다.)
여기서 가장 중요한 것은 오류 메시지 없이 “Kubernetes control plane is running at…” 과 “CoreDNS is running at…” (또는 유사한 서비스 정보) 라인이 정상적으로 출력되는지 여부입니다. 이는 kubectl이 성공적으로 클러스터의 API 서버와 통신하여 응답을 받았음을 의미하며, 우리 로컬 클러스터의 핵심 두뇌가 살아 있고(Alive) 요청에 응답할 준비가 되었음(Ready)을 나타냅니다. 마치 서버에 ‘ping’을 보내 응답이 오는지 확인하는 것과 같은 기본적인 건강 검진(Health Check)이라고 할 수 있습니다. 만약 이 명령어 실행 시 연결 거부(connection refused)와 같은 오류가 발생한다면, Rancher Desktop 내부의 쿠버네티스 컴포넌트가 제대로 시작되지 않았거나 네트워크 설정에 문제가 있을 가능성이 높습니다.
5.2.3.3 노드 상태 확인 (kubectl get nodes)
kubectl의 목적지 설정도 확인했고, 클러스터의 두뇌(컨트롤 플레인)가 살아있다는 것도 확인했습니다. 이제 마지막으로 확인할 것은, 실제로 우리의 애플리케이션 컨테이너들이 배치되고 실행될 작업 공간, 즉 ‘노드(Node)’가 제대로 준비되었는지입니다. 쿠버네티스에서 노드는 클러스터를 구성하는 개별 컴퓨터(물리적 또는 가상 머신)를 의미하며, 컨테이너화된 워크로드를 실행하는 역할을 담당합니다. 실제 운영 환경의 클러스터는 수십, 수백 개의 노드로 구성될 수 있지만, Rancher Desktop과 같은 로컬 환경에서는 보통 단 하나의 노드가 존재하며, 이 노드가 컨트롤 플레인 역할과 워커(Worker) 노드 역할을 겸하게 됩니다.
이 노드의 상태를 확인하기 위해 다음 명령어를 실행합니다.
kubectl get은 쿠버네티스 클러스터 내의 특정 리소스(Resource) 정보를 조회할 때 가장 많이 사용되는 명령어 형식입니다. 여기서는 nodes라는 리소스 타입을 조회하라고 요청하는 것이죠. 성공적으로 실행되면, 다음과 같은 표 형태의 출력을 볼 수 있습니다. NAME, ROLES, VERSION 등은 환경에 따라 조금씩 다를 수 있습니다.
이 출력에서 우리가 주목해야 할 가장 중요한 열은 바로 STATUS 입니다.
- Ready: 이 상태는 해당 노드가 건강하며, 새로운 파드(Pod, 컨테이너의 실행 단위)를 받아들여 실행할 준비가 되었음을 의미합니다. 우리가 원하는 이상적인 상태입니다.
- NotReady: 만약 상태가 NotReady로 표시된다면, 해당 노드에 문제가 발생하여 현재 새로운 작업을 수행할 수 없음을 나타냅니다. 로컬 환경에서는 흔하지 않지만, 만약 이 상태가 보인다면 Rancher Desktop 내부 또는 시스템 리소스 부족 등의 문제를 의심해봐야 합니다.
- 기타 상태: SchedulingDisabled 등 다른 상태들도 있지만, 로컬 단일 노드 환경에서는 Ready 또는 NotReady가 가장 흔하게 보입니다.
또한, ROLES 열을 보면 해당 노드가 어떤 역할을 수행하는지 알 수 있습니다. 로컬 K3s 환경에서는 종종 control-plane (또는 master) 역할과 워커 노드 역할(명시적으로 표시되지 않을 수 있음)을 함께 수행함을 나타내는 정보가 보일 수 있습니다. AGE는 노드가 클러스터에 참여한 후 경과된 시간, VERSION은 해당 노드에서 실행 중인 쿠버네티스(K3s) 버전을 보여줍니다.
결론적으로, kubectl get nodes 명령을 실행하여 단일 노드가 존재하고 그 STATUS가 Ready로 표시되는 것을 확인하는 것이 이 최종 점검의 마지막 관문입니다. 이 상태까지 확인되었다면, 이제 우리는 여러분의 openSUSE 시스템 위에 완벽하게 작동하는 K3s 기반의 로컬 쿠버네티스 클러스터가 성공적으로 구축되었음을 자신 있게 선언할 수 있습니다!
이제 모든 준비는 끝났습니다. 여러분의 손안에 놓인 이 작은 쿠버네티스 클러스터는 앞으로 우리가 클라우드 네이티브 애플리케이션을 배포하고, 서비스를 노출시키며, 쿠버네티스의 다양한 기능들을 탐험하는 흥미진진한 여정을 위한 든든한 베이스캠프가 되어 줄 것입니다. 다음 단계에서는 이 새로운 환경 위에 우리의 첫 번째 애플리케이션을 직접 배포해보는 실습을 진행하겠습니다.