[CKA] Worker Node 장애 대응

NotReady 노드에서 Conditions, kubelet, 컨테이너 런타임과 인증 설정을 확인하는 순서를 정리합니다.

노드가 NotReady라면 먼저 control plane에서 Conditions와 Events를 확인하고, 해당 노드에서 kubelet과 컨테이너 런타임 상태를 봅니다.

kubectl get nodes
kubectl describe node <node>

ssh <node>
systemctl status kubelet
systemctl status containerd
journalctl -u kubelet

MemoryPressure, DiskPressure, PIDPressure, Ready와 최근 heartbeat를 함께 확인합니다. 여러 condition이 Unknown이면 노드가 control plane과 통신하지 못하는 상황일 수 있습니다.

kubelet 설정 오류

kubelet 로그에 CA 파일을 찾지 못한다는 메시지가 나오면 /var/lib/kubelet/config.yaml의 clientCAFile이 실제 CA 경로를 가리키는지 확인합니다.

clientCAFile: /etc/kubernetes/pki/ca.crt

kubelet kubeconfig의 server 주소와 API server port도 확인합니다.

clusters:
- cluster:
    server: https://<control-plane-host>:6443

설정을 바로잡은 뒤 kubelet을 재시작하고 노드가 Ready로 돌아오는지 확인합니다.

sudo systemctl restart kubelet
exit
kubectl get nodes

컨테이너 런타임이 멈춘 경우에도 kubelet이 컨테이너를 관리할 수 없습니다. 사용 중인 런타임을 확인해 다시 활성화합니다.

sudo systemctl enable --now containerd