Kubernetes

[k8s] kubeconfig - 사용자 추가

비번변경 2022. 9. 8. 23:36

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

kubectl config view

 

kubeconfig 구성

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

 

set-credentials

config view를 통해 확인할 수도 있다.

set-credentials 결과 yaml로 확인

 

context 추가

kubectl config set-context <context> --cluster=<cluster> --user=<user>

# 예시
kubectl config set-context test_user@kubernetes --cluster=kubernetes --user=test_user

kubectl config set-context

마찬가지로 kubeconfig의 contexts 부분이 추가된 것을 확인할 수 있다.

set-context 결과 yaml 형식으로 확인

꼭 kubectl config 명령을 통해서만 kubeconfig 파일을 변경해야 하는 것은 아니다. kubeconfig(~/.kube/config) 파일을 에디터 등으로 편집해도 상관없다.

 

 

context 전환

다른 사용자, 다른 클러스터를 이용하고 싶다면 context를 변경하면 된다.

kubectl config use-context <context>

# 예시
kubectl config use-context test_user@kubernetes

kubectl config use-context

 

현재 사용 중인 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/

https://freedeveloper.tistory.com/425