kubectl config
사용자는 쿠버네티스 클러스터를 조작하기 위해 apiserver에 작업을 요청한다. 이때 curl 명령으로도 요청할 수 있으나 key, cert, cacert를 매번 지정해주어야 하는 불편함이 있어 kubeconfig 파일에 해당 정보를 설정해두고 kubectl 명령어로 요청하게 된다.
kubectl config 명령은 kubeconfig 파일을 수정한다. 관련 명령어를 통해 2022.09.07 - [k8s] 인증서 기반 User 생성 에서 생성한 user를 추가하고, user가 kubectl을 통해 클러스터를 조작할 수 있도록 설정해보도록 한다.
등록된 정보 확인
kubeconfig에 등록된 사용자, 클러스터, context 정보는 get-* 명령으로 확인할 수 있다.
💡 context
사용자와 클러스터를 결합한 접근 정보.
어느 사용자가 어느 클러스터로 접근하는지를 설정한다.
# 사용자 확인
kubectl config get-users
# 클러스터 확인
kubectl config get-clusters
# context 확인
kubectl config get-contexts
kubeconfig 파일 내용 확인
설정 정보를 yaml 형식으로 확인한다. 단,인증서와 같은 민감 정보는 마스킹되어 있다.
kubectl config view
kubeconfig 구성
사용자 추가
config set-credentials 명령으로 사용자를 추가할 수 있다.
kubectl config set-credentials <user> \
--client-key=<file.key> \
--client-certificate=<file.crt> \
--embed-certs=true
# 예시
kubectl config set-credentials test_user \
--client-key=test_user.key \
--client-certificate=test_user.crt \
--embed-certs=true
config view를 통해 확인할 수도 있다.
context 추가
kubectl config set-context <context> --cluster=<cluster> --user=<user>
# 예시
kubectl config set-context test_user@kubernetes --cluster=kubernetes --user=test_user
마찬가지로 kubeconfig의 contexts 부분이 추가된 것을 확인할 수 있다.
꼭 kubectl config 명령을 통해서만 kubeconfig 파일을 변경해야 하는 것은 아니다. kubeconfig(~/.kube/config) 파일을 에디터 등으로 편집해도 상관없다.
context 전환
다른 사용자, 다른 클러스터를 이용하고 싶다면 context를 변경하면 된다.
kubectl config use-context <context>
# 예시
kubectl config use-context test_user@kubernetes
현재 사용 중인 cotext 정보는 current-context 또는 get-contexts의 CURRUNT 필드를 통해 확인할 수 있다.
# 현재 사용 중인 context 확인
kubectl config current-context
참고 문서
https://jamesdefabia.github.io/docs/user-guide/kubectl/kubectl_config/
https://jamesdefabia.github.io/docs/user-guide/kubectl/kubectl_config_set-credentials/