반응형
Worker Node Failure
WorkerNode에 생길 수 있는 이슈로는 kubelet이 제대로 동작하지 않는 경우 입니다. kueblet이 동작하지 않는 원인을 찾고 해결하는 과정을 정리해보도록 하겠습니다.
Case
- Not reday상태의 WorkerNode에서 kubelet이 죽어있는 경우 - inactive(dead)
- Not reday상태의 WorkerNode에서 kubelet이 활성화 되고 있는 중인 경우 - activating(auto-restart)
- Not reday상태의 WorkerNode에서 kubelet이 동작하고 있는 경우 - active(running)
WorkerNode의 kubelet이 죽어있는 경우 - inactive(dead)
- Node상태 확인
kubectl get nodes
- 이상 발견 : Not ready 상태인 노드로 원격접근(ssh) 하여 kubelet 상태 확인
ssh node01
systemctl status kubelet
- kubelet 의 Active값이 inactive(dead)인경우 kubelet 을 실행
systemctl start kubelet
- kubelet이 잘 동작하였는지, 상태 확인
systemctl status kubelet
- kubelet의 Active값이 activ(running)인경우 마스터노드로 돌아가서 다시 노드 상태 확인
exit
kubectl get nodes
WorkerNode의 kubelet이 활성화 되고 있는 중인 경우 - activating(auto-restart)
- Node상태 확인
kubectl get nodes
- 이상 발견 : Not ready 상태인 노드로 원격접근(ssh) 하여 kubelet 상태 확인
ssh node01
systemctl status kubelet
- kubelet 의 Active값이 activating(auto-restart) 인경우
- kubelet이 동작하는 중에 이슈가 발생한 경우 이므로 서비스 실행 로그 확인
journalctl -u kubelet
참고 : journalctl이란 systemd의 서비스 로그를 확인할 수 있는 명령어 b(이전 페이지로 이동), z(다음페이지로 이동), q(나가기)
- 오류 메시지 확인
- 아래 오류메시지는 해당 경로의 crt파일을 읽어올 수 없다는 오류
unable to load client CA file /etc/kubernetes/pki/WRONG-CA-FILE.crt
- /etc/kubernetes/pki/WRONG-CA-FILE.crt 이상 유무 확인
ls /etc/kubernetes/pki
- 이상 발견 : crt이름이 다르거나 경로가 다름
- 마스터 노드의 kueblet config yaml파일 에서 원하는 경로로 변경해야함
- kueblet config yaml 경로 확인
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# config.yaml 경로 : KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml
- kubelet config yaml 에서 crt정보 변경
vi /var/lib/kubelet/config.yaml
# 수정전 clientCAFile: /etc/kubernetes/pki/WRONG-CA-FILE.crt
# 수정후 clientCAFile: /etc/kubernetes/pki/ca.crt
- kubelet 재시작
systemctl restart kubelet
WorkerNode의 kubelet이 동작하고 있는 경우 - active(running)
- Node상태 확인
kubectl get nodes
- 이상 발견 : Not ready 상태인 노드로 원격접근(ssh) 하여 kubelet 상태 확인
ssh node01
systemctl status kubelet
- kubelet 의 Active값이 active(running)인경우
- kubelet이 동작하고 있으나 제대로 동작하고 있는 상태가 아니므로 서비스 실행 로그 확인
journalctl -u kubelet
참고 : journalctl이란 systemd의 서비스 로그를 확인할 수 있는 명령어 b(이전 페이지로 이동), z(다음페이지로 이동), q(나가기)
- 오류 메시지 확인
- 아래 오류 메시지는 api server 를 등록할 수 없다는 오류
Unable to register node "node01" with API server: Post "https://172.17.0.28:6553/api/
- 마스터 노드로 가서 api server endpoint 확인
kubectl get ep
# https://172.17.0.28:6443
- 이상 발견 : api server endpoint가 잘못 되었음
- 마스터 노드의 kueblet config conf파일 에서 원하는 경로로 변경해야함
- kueblet config conf경로 확인
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# conf 경로 : KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf
- kueblet config conf에서 올바른 api server endpoint 정보로 변경
vi /etc/kubernetes/kubelet.conf
# 수정전 server: https://172.17.0.28:6553
# 수정후 server: https://172.17.0.28:6443
- kubelet 재시작
systemctl restart kubelet
반응형
'IT > CKA' 카테고리의 다른 글
[CKA독학] Deployment update &Rollback (0) | 2021.07.05 |
---|---|
[CKA독학] 트러블 슈팅 - Network troubleshooting (0) | 2021.07.05 |
[CKA독학] 트러블 슈팅 - Control Plane Failure (0) | 2021.07.02 |
[CKA독학] 트러블 슈팅 - Application Failure (0) | 2021.07.01 |
[CKA시험준비] CKA시험 할인 쿠폰 코드 및 추천강의 (0) | 2021.06.30 |