kubectl은 기본적으로 $Home/.kube/config 파일에서 클러스터, 인증, 컨텍스트 정보를 읽어들인다. 이러한 클러스터 구성 정보를 kubeconfig라고 한다.
기본적으로 kubectl은 $HOME/.kube 디렉터리에서 config라는 이름의 파일을 찾는다. KUBECONFIG 환경 변수를 설정하거나 --kubeconfig 플래그를 지정해서 다른 kubeconfig 파일을 사용할 수 있다.
Kubectl Reference Docs
kubernetes.io
✅ clusters : kubernetes api server 정보. 여러 클러스터들을 명시할 수 있다.
✅ users : kubernetes api에 접속하기 위한 사용자의 목록.
✅ context : user와 cluster의 관계를 매핑한 것. "어떤 Cluster에 어떤 User가 인증을 통해 쿠버네티스를 사용한다."의 의미를 지닌다.

kubeconfig 파일을 직접 수정해서 Cluster, User, Context 항목을 입력해도 되지만, $ kubectl config 명령어를 사용하면 편리하다.
모든 Context 확인하기
$ kubectl config get-contexts
현재 Context 확인하기
$ kubectl config current-context
새로운 Context 만들기
$ kubectl config set-context new-context --cluster=kubernetes --user=chaewon
Context 바꾸기
$ kubectl config user-context new-context
kubeconfig 설정 전체 보기
$ kubectl config view
context를 이용해 원하는 Namespace를 default로 만들기
kubeconfig에서 컨텍스트 요소는 편리한 이름으로 접속 매개 변수를 묶는데 사용한다. 각 컨텍스트는 클러스터, 네임스페이스와 사용자라는 세 가지 매개 변수를 가진다. 기본적으로 kubectl 커맨드라인 툴은 현재 컨텍스트 의 매개 변수를 사용하여 클러스터와 통신한다.
원하는 cluster와 user, namespace를 지정해 new-context라는 context를 생성했다.
kubectl config set-context new-context --cluster=kubernetes --user=kubernetes-admin --namespace=blue

new-context를 current-context로 설정하고 파드를 생성해보자
kubectl config use-context new-context
kubectl run nginx-pod --image=nginx:1.14
파드 생성시에 따로 namespace를 지정하지 않았지만, new-context의 namespace가 blue이기 때문에
파드 역시 namespace가 blue로 지정됐다.
kubectl describe po nginx-pod

--namespace flag를 입력하지 않고 특정 namespace를 default로 지정해 사용하고 싶은 경우 매우 편리할 것 같다.
https://jonnung.dev/kubernetes/2020/06/18/kubernetes-user-authorizations/
조은우 개발 블로그
jonnung.dev
'Kubernetes' 카테고리의 다른 글
4. kubernetes architecture (0) | 2022.02.06 |
---|---|
Deployment를 이용해 Container 실행하기 (0) | 2022.02.05 |
[ERROR] kubelet.service: Unit entered failed state. (0) | 2022.02.04 |
How to completely uninstall kubernetes & install kubeadm, kubelet, kubectl (0) | 2022.02.03 |
Controller [2] - ReplicaSet (0) | 2022.01.29 |