
사용자 환경 (개인 PC, bootstrap machine, server 등) 에서 Kubernetes 클러스터의 kube-apiserver 와 통신하기 위한 endpoint, 사용자 인증 정보 등이 포함된 파일으로 예시는 아래와 같다.
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJU05jZndSL2pSaDR3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2eApFK
server: https://controlplane:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURLVENDQWhHZ0F3SUJBZ0lJRHVkZ21YekM4cTh3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRBNE1UZ3hNak14TXpKYUZ3MHlOVEE0TVRneE1qTTJNelJhTUR3eApI
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdjg1THNaUktlRWNBT1c1ZmVPejFGQTh6RE1vZEtla1F5cVVWRVgzcEltZX
cluster, context, user 정보는 하나의 파일에 여러개가 존재 가능하며, 필요에 따라 config 파일을 여러개로 나누거나 하나로 합쳐서 관리한다.
클러스터 접속정보 변경 #1
shell 에서 인식하는 클러스터 접속 정보는 기본적으로 ~/.kube/config 파일에 있는 kubeconfig 파일을 참조한다.
만약 ~/.kube/config 파일이 아닌, 임의로 생성한 kubeconfig 를 참조하도록 변경하고 싶다면 --kubeconfig 옵션을 추가하거나, KUBECONFIG 환경변수를 생성/변경함으로써 초지 가능하다.
# case 1
$ kubectl get po --kubeconfig=./my-kube-config
# case2
$ export KUBECONFIG=/path/my-kube-config
$ kubectl get po
클러스터 접속정보 변경 #2
다수의 클러스터 접속정보가 포함되어 있는 kubeconfig 사용 중일 경우에서는 kubectl config 명령을 통해 접속정보 변경이 가능하다.
controlplane ~ ✖ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
aws-user@kubernetes-on-aws kubernetes-on-aws aws-user
research test-cluster-1 dev-user
* test-user@development development test-user
test-user@production production test-user
controlplane ~ ➜ kubectl config use-context research --kubeconfig=./my-kube-config
Switched to context "research".
controlplane ~ ➜ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
aws-user@kubernetes-on-aws kubernetes-on-aws aws-user
* research test-cluster-1 dev-user
test-user@development development test-user
test-user@production production test-user
controlplane ~ ➜