클라우드/쿠버네티스

[Kubernetes] 8. 쿠버네티스 config와 kubectl의 context

윤창이 2021. 6. 17. 05:44
728x90

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다!

피드백 부탁드립니다. (- -)(_ _) 꾸벅

 

k8s


[ Context란? ]

kubectl은 클러스터에 명령을 내릴 수 있는 Command-Line 툴이다. 근데 이 kubectl이란게 어느 클러스트에 연결하여 사용할지 설정되어 있어야하는데, 특히 다중 클러스터 환경에서 Context를 설정해 주어야 kubectl이 어느 클러스터에 연결될지 결정된다.

 

예전에 minikube로 실습할 때, $ minikube start 명령은 자동으로 kubectl의 context를 minikube로 설정해주기 때문에 따로 kubectl의 context를 설정할 필요 없이 바로 minikube 클러스터에 명령이 가능했었다.

 

 


[ ~/.kube/config 파일 ]

context는 ~/.kube/config 파일에서 지정이 가능하다. 

나의 경우는 아래와 같았다.

apiVersion: v1
kind: Config
preferences: {}

current-context: minikube

clusters:
- cluster:
    certificate-authority-data: ~~
    server: https://10.27.18.33:6443
  name: kubernetes
- cluster:
    certificate-authority: /home/yoon/.minikube/ca.crt
    extensions:
    - extension:
        last-update: Thu, 17 Jun 2021 04:39:51 KST
        provider: minikube.sigs.k8s.io
        version: v1.19.0
      name: cluster_info
    server: https://192.168.49.2:8443
  name: minikube
  
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
- context:
    cluster: minikube
    extensions:
    - extension:
        last-update: Thu, 17 Jun 2021 04:39:51 KST
        provider: minikube.sigs.k8s.io
        version: v1.19.0
      name: context_info
    namespace: default
    user: minikube
  name: minikube


users:
- name: kubernetes-admin
  user:
    client-certificate-data: ~~
    client-key-data: ~~
- name: minikube
  user:
    client-certificate: /home/yoon/.minikube/profiles/minikube/client.crt
    client-key: /home/yoon/.minikube/profiles/minikube/client.key

 

크게 네 가지 부분으로 나눌 수 있는데,

  1. current-context
    이 부분에서 현재 설정할 context를 지정할 수 있다.
  2. clusters
    쿠버네티스의 클러스터 정보들
  3. contexts
    cluster와 user를 조합해서 생성된 값
  4. users
    클러스터에 접근할 유저들의 정보 및 인증키

[ context 조회 및 설정 ]

 

1. config 파일 출력

$ kubectl config view 

 

2. context들 조회

$ kubectl config get-contexts

 

3. context 변경 (minikube로)

$ kubectl config use-context minikube

 

728x90