[CKS] 1-10. KubeConfig

KubeConfig는 kubectl 사용 시 번거로운 인증서 및 서버 정보 입력을 자동화하여 클러스터 접근을 효율화합니다.

개요

사용자를 위한 인증서를 생성하는 방법을 확인했습니다.

인증서 파일과 키를 사용하기 위해 curl 요청을 보내면서 CA 인증서와 함께 키, 인증서 파일을 전송합니다.

kubectl 명령어를 사용할 때 마찬가지로 서버 도메인, 키, 인증서와 CA파일을 전송합니다.

kubectl get pods \
  --server my-kube-playground:6443 \
  --client-key admin.key \
  --client-certificate admin.crt \
  --certificate-authority ca.crt

KubeConfig

매번 이러한 것들을 입력하기엔 너무 귀찮습니다. 이를 자동화하기 위해 kubeconfig를 사용하며 기본적으로 .kube 디렉토리에서 config를 찾아 사용합니다.

KubeConfig File

클러스터

컨텍스트

유저

새로운 사용자를 만들거나 사용자 접근, 권한을 설정하는 것이 아닙니다.

사용자 인증서같은 자격 증명과 클러스터 명칭이 결합하여 Context를 구성하는 것 뿐입니다.

YAML 구성은 다음과 같습니다.

apiVersion: v1
kind: Config

current-context: admin@production

clusters:
- name: production
  cluster:
    certificate-authority: ca.crt
    server: https://172.17.0.51:6443
contexts:
- name: admin@production
  context:
    cluster: production
    user: admin
    namespace: finance
users:
- name: admin
  user:
    client-certificate: admin.crt
    client-key: admin.key
kubectl config view
kubectl config use-context <CONTEXTS>

Namespace의 경우 Context 필드에 특정 네임스페이스를 추가할 수 있으며 자동으로 특정 Namespace로 이동합니다.