RKE2를 사용하여 쿠버네티스(Kubernetes) 클러스터를 구성할 때, 많은 초보자들이 kubectl과 crictl 명령어가 바로 동작하지 않는다는 문제에 직면합니다. 이 글에서는 RKE2 설치 후 kubectl, crictl 환경 설정을 반드시 해야 하는 이유와 방법을 단계별로 안내합니다.


RKE2 설치 후 kubectl이 바로 안 되는 이유

RKE2 설치 직후에는 kubectl 명령어가 기본 시스템 PATH에서 클러스터와 통신할 수 있는 kubeconfig를 찾지 못합니다.

  • RKE2는 kubeconfig 파일을 /etc/rancher/rke2/rke2.yaml에 생성
  • 일반적으로 kubectl~/.kube/config를 참조
  • 따라서 kubeconfig를 지정하지 않으면 kubectl get nodes 등 명령 실행 시 오류 발생

✅ 해결 방법

# 1. 환경 변수로 kubeconfig 지정
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml

# 2. 기본 경로로 복사
mkdir -p ~/.kube
sudo cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config

crictl이 바로 동작하지 않는 이유

RKE2는 기본적으로 containerd를 사용합니다.
그러나 일반 시스템 containerd와 달리 RKE2는 자체 디렉터리와 socket을 사용합니다.

  • RKE2 containerd 경로 예시:
    /var/lib/rancher/rke2/agent/containerd.sock
  • crictl은 기본적으로 /var/run/containerd/containerd.sock를 찾기 때문에 바로 실행 불가

✅ 해결 방법

  1. RKE2 전용 CRI config 지정
export CRI_CONFIG_FILE=/var/lib/rancher/rke2/agent/etc/crictl.yaml
  1. 전역 명령어로 crictl 사용
sudo ln -s /var/lib/rancher/rke2/bin/crictl /usr/local/bin/crictl
  1. 확인
crictl ps  # RKE2 containerd에서 실행 중인 컨테이너 목록 확인

💡 팁: 위 export 명령은 ~/.bashrc 또는 ~/.zshrc에 추가하면 터미널 재실행 시 자동 적용됩니다.


요약: RKE2 설치 후 필수 환경 설정 체크리스트

항목 문제점 해결 방법
kubectl kubeconfig 위치 미설정 → 클러스터 통신 불가 export KUBECONFIG=/etc/rancher/rke2/rke2.yaml 또는 ~/.kube/config로 복사
crictl RKE2 containerd 소켓 다름 → 컨테이너 조회 불가 export CRI_CONFIG_FILE=/var/lib/rancher/rke2/agent/etc/crictl.yaml
crictl PATH 기본 PATH에 없음 → 일반 사용자 실행 불가 sudo ln -s /var/lib/rancher/rke2/bin/crictl /usr/local/bin/crictl

마무리

RKE2로 쿠버네티스 클러스터를 구성하면서 겪는 대표적인 삽질 포인트는 kubectl과 crictl이 바로 동작하지 않는 것입니다.
이번 글에서 소개한 kubeconfig 지정, CRI config 지정, PATH 링크를 통해 CLI 환경을 정상화하면 RKE2 환경에서 안정적으로 클러스터와 컨테이너를 관리할 수 있습니다.

'k8s' 카테고리의 다른 글

복잡한 YAML 이제 걱정 끝! Kubernetes 자동 생성 팁  (0) 2025.11.08
복사했습니다!