쿠버네티스 인증서 문제 해결 체크리스트
정보
- 본인이 새로운 팀에 합류하였고, 마주한 업무가 인증서에서 생긴 문제를 해결해야한다고 가정하자.
- 클러스터가 직접
manual하게 구축되었는지,kubeadm으로 자동으로 구축되었는지에 따라 다르지만,manual하게 구축 된 경우는 많지 않으므로kubeadm으로 구축된 경우 어떠한 절차를 따라서 인증서에 생긴 문제를 해결해야하는지 알아보자.
인증서 현황 파악 프로세스
1. 인증서 파일 위치 찾기
sudo nano /etc/kubernetes/manifests/kube-apiserver.yaml
kube-apiserveryaml 파일 등(원하는 컴포넌트의 yaml 파일)을 보고, 내부 인자에서의 인증서 경로들을 확인한다.
2. 인증서 세부 정보 체크
openssl x509 -in <인증서파일경로> -text -noout
- 확인해야 할 정보
Subject (CN): 인증서 이름Subject Alternative Names (SAN): DNS 이름 및 IP 주소 목록Validity: 인증서 만료일Issuer: 발급자 정보 (kubeadm의 경우 보통 Kubernetes CA)
(중요) 트러블 슈팅
검증 체크리스트
- 인증서 이름이 올바른가?
- 필요한 모든 대체 이름(SAN)이 포함되어 있는가?
- 올바른 조직(Organization)에 속해 있는가?
- 신뢰할 수 있는 올바른 발급자(CA)가 발급했는가?
- 인증서가 만료되지 않았는가?
로그 확인
- 정상적인 상황
kubectl logs <Pod이름>으로 로그 확인
- 핵심 컴포넌트 (
kube-apiserver,etcd등) 가 다운된 경우- 이 때는 컨테이너 런타임 레벨(
DockerorContainerd)에서 직접 로그를 확인해야 한다. - 컨테이너 조회:
docker ps -aorcrictl ps -a - 로그 조회:
docker logs <컨테이너ID>orcrictl logs <컨테이너ID>
- 이 때는 컨테이너 런타임 레벨(
레퍼런스
- https://kubernetes.io/docs/setup/best-practices/certificates/#certificate-paths
- Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests (Mumshad)