Skip to main content

kubeconfig 이해하기

image.png

perplexity에서 생성한 AI이미지

시작하는말

안녕하세요, 고니입니다.

kubernetes에서 인증에 필요한 kubeconfig에 대해서 기술하려고 합니다.

시 작

  1. kubeconfig 항목 설명

    •  certificate-authority-data
      1. 클러스터 api서버를 검증하는데 사용
      2. 클라이언트가 api서버와 통신할때 인증서가 이 CA로 서명되어 있는지를 확인
    • client-certificate-data
      1. 클러스터  api서버에 인증된 클라이언트로서 연겷하기 위해 상요됨
      2. 클라이언트가 유요한 사용자인지 증명
    • client-key-data
      1. 클라이언트 인증서를 사용할때 해당 인증서의 비공식 키를 제공하여 인증을 활용
      2. 이 키는 인증서와 함께 사용되어 클라이언트가 자신을 증명하는데 필요
  2. kubeconfig 검증

    • 테스트는 인증서 갱신을 한번한 뒤 기존에 사용하던 kubeconfig로 진행함
    • 각 데이터 변수 언선
      1. AUTHORITY : certificate-authority-data
      2. CERTIFICATE : client-certificate-data
      3. CLIENT-KEY-DATA
    • base64로 디코딩하여 crt생성
    • 각 cert의 만료일 체크
      1. certificate-authority-data
      2. client-certificate-data
      3. client-key-data : 만료일 정보 없음

결 론

  1. kubespray로 프로비져닝된 k8s의 경우 kubeadm을 통한 certs renew가 매달 진행되어도 기존에 사용됬던 kubeconfig가 사용될 수 있는 원인을 확인하였음
    • /etc/kubernetes/admin.conf이 갱신되는것과 별개로 기존 kubeconfig의 client-certificate-data가 만료되지 않아서 사용가능