kubeconfig 이해하기
perplexity에서 생성한 AI이미지 |
시작하는말
안녕하세요, 고니입니다.
kubernetes에서 인증에 필요한 kubeconfig에 대해서 기술하려고 합니다.
시 작
-
kubeconfig 항목 설명
- certificate-authority-data
- 클러스터 api서버를 검증하는데 사용
- 클라이언트가 api서버와 통신할때 인증서가 이 CA로 서명되어 있는지를 확인
- client-certificate-data
- 클러스터 api서버에 인증된 클라이언트로서 연겷하기 위해 상요됨
- 클라이언트가 유요한 사용자인지 증명
- client-key-data
- 클라이언트 인증서를 사용할때 해당 인증서의 비공식 키를 제공하여 인증을 활용
- 이 키는 인증서와 함께 사용되어 클라이언트가 자신을 증명하는데 필요
- certificate-authority-data
-
kubeconfig 검증
- 테스트는 인증서 갱신을 한번한 뒤 기존에 사용하던 kubeconfig로 진행함
- 각 데이터 변수 언선
- AUTHORITY : certificate-authority-data
- CERTIFICATE : client-certificate-data
- CLIENT-KEY-DATA
- base64로 디코딩하여 crt생성
- 각 cert의 만료일 체크
- certificate-authority-data
- client-certificate-data
- client-key-data : 만료일 정보 없음
- 테스트는 인증서 갱신을 한번한 뒤 기존에 사용하던 kubeconfig로 진행함
결 론
- kubespray로 프로비져닝된 k8s의 경우 kubeadm을 통한 certs renew가 매달 진행되어도 기존에 사용됬던 kubeconfig가 사용될 수 있는 원인을 확인하였음
- /etc/kubernetes/admin.conf이 갱신되는것과 별개로 기존 kubeconfig의 client-certificate-data가 만료되지 않아서 사용가능