📌 기존 클러스터에서 인증서 확인하기
- 클러스터 전체 인증서 상태 확인 요청을 받았다고 가정
- 클러스터가 어떻게 설정됐는지 확인
$ cat /etc/kubernetes/manifests/kube-apiserver.yaml
$ cat /etc/systemd/system/kube-apiserver.service
- 서비스 배포시 kubeadm 툴은 pod로 배포함
- 어디를 보고 올바른 정보를 봐야하는지 아는게 중요
🌐 kubeadm 에 의한 클러스터 프로비저닝에서의 인증
# API 서버 정의 파일을 다음 경로에서 확인
$ cat /etc/kubernetes/manifests/kube-apiserver.yaml
<중략>
- command:
- kube-apiserver
<중략>
- --client-ca-file=/etc/kubernetes/pki.ca.crt
<중략>
- --etcd-cafile=/etc/kubenetes/pki/etcd/ca.crt
- --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt
- --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key
<중략>
- --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt
- --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key
<중략>
- --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
- --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
- API 서버 정의파일은 모든 인증서 파일의 경로를 가지고 있다.
- 각 용도로 사용되는 인증서 파일을 확인가능
- 다음 각각 인증서 내부를 살펴 해당 인증서에 관해 상세히 확인 할 수있음
$ openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout
Certificate:
Data:
<중략>
issuer: CN=kubernetes // 발급자 확인 (증명서를 발급한 CA 이다)
<중략>
Not After : Feb 11 05:39:20 2020 GMT // 유효기간 만료일
Subject: CN-kube-apiserver
<중략>
X509v3 Subject Alternative Name:
DNS:master, DNS:kubernetes, DNS:kubernetes.default, …

- API 서버의 DNS 이름이 많아 전부 다 있는지 확인 해야함
- kubeadm은 발급자를 kubernetes CA 라고 부름
✔️ 인증서 확인해야할 사항
- 올바른 이름과 올바른 대체 이름을 갖고 있는지 (DNS)
- 올바른 조직의 일부인지 (CA) - 신뢰할 수있는 발행인에 의해 발행되고 인증서가 만료되지 않았는지
- 인증서 요구사항은 K8S 문서페이지에 상세히 나와있다
🔎 Inspect Service Logs (서비스 로그 검사)
- 문제가 생긴 경우 로그를 봐야함
- 처음부터 혼자 클러스터를 구성하고 os 상에 native 서비스로 동작 시 운영체제 로깅 기능을 이용한 서비스 로그를 봐야함
$ journalctl -u etcd.service -l

- kubeadm으로 클러스터를 설정하면 다양한 구성요소가 pod로 배포됨
$ kubectl logs etcd-master

🔫 트러블 슈팅
- apiserver 나 etcd 서버같은 핵심 구성요소가 다운되면 kubectl 명령어가 작동하지 않음
- 이런 경우 Docker로 내려가 로그를 가져와야함
$ docker ps -a // 컨테이너 ID 확인
$ docker logs <컨테이너 ID>