Kubernetes 컨텍스트 스위칭 악몽이 끝났다

발행: (2025년 12월 10일 오전 04:42 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

Kubernetes 컨텍스트 전환 악몽 일러스트레이션

여러 Kubernetes 클러스터를 매일 다루는 경우, 그 고통을 잘 알고 있을 겁니다. 프로덕션, 스테이징, 개발, 그리고 지난달에 누군가 띄운 그 무작위 테스트 클러스터—이 모든 것이 kubeconfig 파일에 존재하고, 클러스터 간 전환은 눈을 가린 채 미로를 헤매는 느낌이죠.

저도 지쳤습니다. 그래서 kubecfg 를 만들었습니다.

kubecfg란?

kubecfg는 kubeconfig 관리를 간소화해 주는 CLI 도구입니다. 다음을 할 수 있습니다:

  • 추가: 사용자 정의 이름으로 새로운 클러스터 설정을 추가
  • 목록: 모든 컨텍스트를 한눈에 보기
  • 전환: 선택적 네임스페이스 지정과 함께 컨텍스트 전환
  • 관리: 인터랙티브하게 네임스페이스 관리
  • 이름 변경: 기억하기 쉬운 이름으로 컨텍스트 재명명
  • 제거: 더 이상 필요 없는 컨텍스트 삭제
  • 병합: 여러 kubeconfig 파일을 하나로 합치기

핵심 기능? 퍼지 검색을 지원하는 인터랙티브 피커. 긴 컨텍스트 이름을 복사‑붙여넣기 할 필요가 없습니다.

빠른 데모

네임스페이스와 함께 컨텍스트 전환

컨텍스트 전환 다이어그램

kubecfg use -n

이 명령은 컨텍스트를 위한 인터랙티브 피커를 연 뒤, 어떤 네임스페이스를 사용할지 물어봅니다. 두 선택이 한 흐름 안에서 이루어집니다.

Select context
  minikube
▸ production-eks
  staging-gke
  dev-local

✓ production-eks

Select namespace
  default
  kube-system
▸ backend-services
  frontend
  monitoring

✓ backend-services

Switched to context 'production-eks' with namespace 'backend-services'

컨텍스트만 전환

kubecfg use production-eks

특정 네임스페이스와 함께 전환

kubecfg use production-eks -n backend-services

-n 플래그는 스마트합니다: 값을 주지 않으면 인터랙티브 선택을 열고, 값을 주면 바로 해당 네임스페이스를 사용합니다.

설치 방법

Homebrew (macOS)

brew tap kadirbelkuyu/tap
brew install kadirbelkuyu/tap/kubecfg

Go Install

go install github.com/kadirbelkuyu/kubecfg@latest

소스에서 직접

git clone https://github.com/kadirbelkuyu/kubecfg.git
cd kubecfg
go build -o kubecfg .
sudo mv kubecfg /usr/local/bin/

명령어 상세 설명

새 클러스터 추가

kubecfg add ~/Downloads/eks-config.yaml --name production-eks

원본 파일은 그대로 유지됩니다. 선택한 이름으로 메인 kubeconfig에 컨텍스트가 추가됩니다.

모든 컨텍스트 목록 보기

kubecfg list

출력

CURRENT  NAME            CLUSTER         SERVER                              NAMESPACE
*        production-eks  production-eks  https://xxx.eks.amazonaws.com       backend
         staging-gke     staging-gke     https://xxx.gke.googleapis.com      -
         dev-local       minikube        https://192.168.49.2:8443           default

별표(*)는 현재 선택된 컨텍스트를 나타냅니다. -는 기본 네임스페이스임을 의미합니다.

인터랙티브 컨텍스트 전환

kubecfg use

인수는 필요 없습니다. 인터랙티브 피커가 나타나며, 화살표 키로 이동하고 Enter 키로 선택합니다.

Select context
  minikube
▸ production-eks
  staging-gke

✓ production-eks

Switched to context 'production-eks'

네임스페이스 관리

현재 컨텍스트의 네임스페이스 전환

kubecfg ns

인터랙티브 피커가 클러스터에서 직접 네임스페이스 목록을 가져옵니다:

Select namespace
  default
  kube-system
▸ backend-services
  monitoring

✓ backend-services

Namespace set to 'backend-services'

네임스페이스 직접 지정

kubecfg ns kube-system

현재 네임스페이스 확인

kubecfg ns current
# Output: backend-services

컨텍스트 이름 변경

kubecfg rename arn:aws:eks:us-east-1:123456789:cluster/prod production

컨텍스트 삭제

kubecfg remove old-cluster

삭제 전 확인 프롬프트가 표시됩니다:

Remove context 'old-cluster'? [y/N]:

--force 옵션으로 프롬프트를 건너뛸 수 있습니다:

kubecfg remove old-cluster --force

설정 병합

kubecfg merge config1.yaml config2.yaml config3.yaml -o merged.yaml

모든 컨텍스트, 클러스터, 사용자 정보가 하나의 파일로 합쳐집니다. 중복 항목은 자동으로 처리됩니다.

설정 병합 다이어그램

Back to Blog

관련 글

더 보기 »