# kubeconfig 이해하기

### 시작하는말

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

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

<table border="1" id="bkmrk-perplexity%EC%97%90%EC%84%9C-%EC%83%9D%EC%84%B1%ED%95%9C-ai%EC%9D%B4" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>[![c7a74b24-51d7-4609-9d13-d1c33e1af4c4.png](http://wiki.igoni.kr/uploads/images/gallery/2026-03/scaled-1680-/c7a74b24-51d7-4609-9d13-d1c33e1af4c4.png)](http://wiki.igoni.kr/uploads/images/gallery/2026-03/c7a74b24-51d7-4609-9d13-d1c33e1af4c4.png)

</td></tr><tr><td>perplexity에서 생성한 AI이미지</td></tr></tbody></table>

### 시 작

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가 만료되지 않아서 사용가능