
아래 환경, 상황에서 겪은 문제를 손쉽게 해결한 후에 작성된 게시글입니다.
이 글을 통해서 kubernetes를 조금 더 이해할 수 있게 되면 좋을 것 같습니다.
환경 : kubespray로 신규로 구축한 HA Kubernetes 클러스터
상황 : kubectl logs pod-name 시, tls handshake timeout 에러 발생
해결 방법 : 승인 대기 중인 csr을 모두 승인
kubectl get csr
kubectl certificate approve <csr-name>
kubectl logs 조회 과정
아래 명령어를 사용하면 쉘에서 컨테이너 로그를 볼 수 있습니다.
kubectl logs <pod-name>
이 과정은 실제로는 3단계로 구성되어 있습니다.
kubectl logs → kube-apiserver → kubelet → container runtime
kubectl logs → kube-apiserver : 로그 조회를 위한 API 요청
kube-apiserver → kubelet : 파드가 위치한 노드의 kubelet에 요청
kubelet → container runtime : socket/local 기반의 통신
kube-apiserver, kubelet 통신 과정
kube-apiserver → kubelet 간 통신을 위해서 TLS Certificate를 사용합니다.
kubesrpay로 여러개의 노드로 이루어진 클러스터를 구축하면
제일 먼저 구축되는 1번 마스터노드와 1번에 조인(join)하는 다른 노드들 모두는
다양한 목적을 위해서 TLS Certificate를 생성하고 승인을 기다리게 됩니다.
이것을 CSR*이라고 부릅니다.
Certificate Signing Request
Share article