본문 바로가기
클라우드 및 인프라/CKA

[CKA] Udemy - Troubleshooting - worker node failure 문제풀이

by 작은소행성 2023. 5. 29.

 

Q1. Fix the broken cluster

A1. 

노드 조회 

kubectl get nodes

 

NotReady 노드 접속

ssh node01

 

컨테이너와 kubelet 상태 조회 

systemctl status containerd
systemctl status kubelet

 

kubelet 이 작동하지 않음 

kubelet 실행시키기

systemctl start kubelet

 

실행되었는지 상태 확인하기 

systemctl status kubelet

이미지처럼 Active 에 active 표시가 되어있어야 한다. 

 

 

node 접속을 종료하고 상태를 조회한다. 

kubectl get nodes

 

 

 

 

 

Q2. The cluster is broken again. Investigate and fix the issue.

A2. 

노드 조회

kubectl get nodes

 

NotReady 노드 접속

ssh node01

 

컨테이너와 kubelet 상태 조회 

systemctl status containerd
systemctl status kubelet

kubelet 실행시키기

systemctl start kubelet

kubelet 을 시작시켜도 해결되지 않았다. 

 

journalctl 명령어를 사용해서 로그를 확인해보았다. 

root@node01:~# journalctl -u kubelet 
.
.
Dec 29 14:32:36 node01 kubelet[4670]: E1229 14:32:36.331403    4670 run.go:74] "command failed" err="failed to construct kubelet dependencies: unable to load client CA file /etc/kubernetes/pki/WRONG-CA-FILE.crt: open /etc/kubernetes/pki/WRONG-CA-FILE.crt: no such file or directory"
.
.

오류 내용을 보면 CA certificate 의 파일 위치가 잘못되었다고 나온다. 

해당 노드의 yaml 파일 위치는 /vat/lib/kubelet/config.yaml 에 있다. 

 

파일 위치를 변경하고 kubelet 을 restart 해주면 된다. 

 

 

 

 

 

 

Q3. The cluster is broken again. Investigate and fix the issue.

A3. 

노드 조회

kubectl get nodes

 

NotReady 노드 접속

ssh node01

 

컨테이너와 kubelet 상태 조회 

systemctl status containerd
systemctl status kubelet

kubelet 실행시키기

systemctl start kubelet

kubelet 을 시작시켜도 해결되지 않았다. 

root@node01:~# journalctl -u kubelet 
.
.
.
Dec 29 14:39:38 node01 kubelet[6005]: E1229 14:39:38.637930    6005 reflector.go:140] vendor/k8s.io/client-go/informers/factory.go:150: Failed to watch *v1.Node: failed to list *v1.Node: Get "https://controlplane:6553/api/v1/nodes?fieldSelector=metadata.name%3Dnode01&limit=500&resourceVersion=0": dial tcp 10.33.28.7:6553: connect: connection refused
.
.
.

 

 

 

 

 

 

 

반응형