쿠버네티스 클러스터 내 인증서 확인하기
클러스터에서 사용되는 다양한 인증서를 확인하고 점검하는 방법을 배웁니다.
인증서 정보 확인 방법
클러스터 설정 방법 파악: 클러스터가 수동으로 설정되었는지, 아니면 Kubeadm과 같은 자동화 도구를 사용하여 설정되었는지 파악합니다.
인증서 파일 위치 확인: Kubeadm을 사용한 경우,
/etc/kubernetes/manifests
경로 아래에 있는kube-apiserver.yaml
정의 파일에서 인증서 파일 위치를 확인할 수 있습니다.
cat /etc/kubernetes/manifest/kube-apiserver.yaml
- 인증서 상세 정보 확인: OpenSSL을 사용하여 인증서의 상세 정보를 확인합니다. 예를 들어, kube-apiserver의 인증서를 확인하기 위해 다음 명령어를 사용합니다.
openssl x509 -in /path/to/apiserver.crt -text -noout
- 이 명령어는 인증서의 주체 이름(CN), 대체 이름(SANs), 유효 기간, 발급자 등의 정보를 제공합니다.
인증서 유효성 및 만료 날짜 확인: 인증서가 만료되지 않았는지, 올바른 발급자(CA)에 의해 서명되었는지 확인합니다.
로그를 통한 문제 해결: Kubeadm으로 설정된 클러스터의 경우, 각 컴포넌트는 Pod로 배포됩니다.
kubectl logs <pod-name>
명령어를 사용하여 로그를 확인하고 문제를 진단할 수 있습니다. API 서버나 etcd 서버와 같은 핵심 컴포넌트가 다운된 경우, Docker를 통해 컨테이너 로그를 직접 확인할 수도 있습니다.
- Inspect Server Logs - Hardware setup
journalctl -u etcd.service -l
- Inspect Server Logs - kubeadm setup
kubectl logs etcd-master
실습 팁
- Excel 스프레드시트 사용: 클러스터의 모든 인증서 파일, 경로, 이름, 만료 날짜 등을 포함하는 스프레드시트를 생성하여 관리합니다.
- Kubeadm 클러스터의 경우: Kubeadm이 생성한 인증서 파일들은 대부분
/etc/kubernetes/pki
디렉토리에 위치합니다.
요약
클러스터의 인증서 상태를 점검하는 것은 클러스터의 보안 상태를 유지하기 위해 필수적인 작업입니다. 각 인증서의 만료 날짜, 발급자, 그리고 사용되는 SANs을 주기적으로 확인하여 클러스터가 안전하게 운영되고 있는지 확인하세요.
K8s Reference Docs
https://kubernetes.io/docs/setup/best-practices/certificates/#certificate-pathshttps://github.com/mmumshad/kubernetes-the-hard-way/tree/master/tools