kubeconfig 파일 병합하기
여러 개의 kubeconfig 파일을 하나로 병합하여 kubectl 사용성을 높이는 방법
여러 개의 Kubernetes 클러스터를 운영하다 보면 kubeconfig 파일이 여러 개로 흩어지기 쉽다. 테스트·운영 클러스터가 각각 따로 있고, 로컬 개발 환경까지 더해지면 설정 파일이 폴더 곳곳에 생겨 관리가 복잡해진다.
이 글에서는 이러한 여러 kubeconfig 파일을 하나로 병합해 관리성을 높이는 방법을 소개한다. kubectl을 사용할 때 context 전환을 쉽게 하고, 설정이 산재해 생기는 혼란을 방지하는 데 도움이 된다.
1. kubeconfig 파일 백업하기
기존 설정을 잃어버리면 곤란하므로 병합 작업을 시작하기 전에 반드시 백업을 만들어둔다.
1
cp ~/.kube/config ~/.kube/config.bak
2. KUBECONFIG 환경 변수 설정하기
KUBECONFIG 변수는 참조할 kubeconfig 파일 경로들을 콜론(:)으로 연결한 목록이다.
예시:
1
/path/cluster1:/path/cluster2:/path/cluster3
아래처럼 여러 config 파일을 지정할 수 있다.
1
export KUBECONFIG=~/.kube/config:/path/cluster1:/path/cluster2
여러 kubeconfig를 한 번에 지정하기
현재 디렉토리에 kubeconfig 파일이 많이 모여 있다면 다음 명령어로 빠르게 환경 변수를 구성할 수 있다.
1
export KUBECONFIG=~/.kube/config:$(find . -type f | tr '\n' ':')
find로 모든 파일 경로를 가져오고 tr로 줄바꿈을 :로 바꿔 하나의 리스트로 만든 방식이다.
3. kubeconfig 병합된 단일 파일 생성하기
여러 구성 파일을 한 번에 병합하려면 다음 명령어를 실행한다.
1
kubectl config view --flatten > all-in-one-kubeconfig.yaml
view는 현재 KUBECONFIG 환경 변수를 기준으로 로드된 모든 설정을 출력한다.--flatten옵션은 중복된 key, 사용자, 클러스터 정보를 정리해 단일 구성 파일 형태로 정리한다.
4. 기존 config 파일 교체하기
병합된 파일을 기본 kubeconfig 위치로 옮긴다.
1
mv all-in-one-kubeconfig.yaml ~/.kube/config
이제 kubectl은 병합된 단일 config를 기준으로 클러스터를 관리한다.
5. 정상 동작 확인하기
아래 명령으로 병합된 설정 내 클러스터 목록을 확인할 수 있다.
1
kubectl config get-clusters
정상적으로 출력된다면 병합이 완료된 것이다.
마무리
여러 kubeconfig를 사용하는 환경에서는 설정 충돌이나 context 헷갈림이 자주 발생한다. 위 과정으로 단일 파일로 병합해두면 운영 편의성이 크게 올라가며, 특히 로컬 개발 환경이나 멀티 클러스터 운영 환경에서 매우 유용하다.
필요할 때마다 새로운 클러스터 설정을 추가하고 다시 병합 파일로 정리하는 루틴을 만들면 훨씬 깔끔한 Kubernetes 작업 환경을 유지할 수 있다.