IT/CKA

[CKA독학] 트러블 슈팅 - Control Plane Failure

반응형

Control Plane Failure

Control Plane에 생길 수 있는 이슈로는 스케줄러, 컨트롤러 매니저, api서버, etcd 등이 제대로 동작하지 않는 이슈가 있을 수 있습니다. Control Plane에서 동작하는 pod 들을 static pod라고 하며, static pod에 대한 yaml파일은 특정 폴더에 위치해 있습니다.

오늘은 Control Plane Failure가 발생하였을경우, static pod yaml의 위치를 파악하여 이를 해결 하는 방법을 알려 드리도록 하겠습니다.

  • static pod
    • etcd.yaml
    • kube-apiserver.yaml
    • kube-controller-manager.yaml
    • kube-scheduler.yaml

static pod 이슈

kube-scheduler 이슈

  1. 모든 리소스 확인 : 네임스페이스 kube-system에서 동작하는 pod에 이상이 없는지 확인
kubectl get all -A
  1. 이상 발견 : kube scheduler pod 의 이벤트 내용 확인
kubectl describe pod/kube-scheduler-controlplane -n kube-system
  1. 특별한 이벤트가 없다면 pod log 확인
kubectl logs kube-scheduler-controlplane -n kube-system
  1. 이상발견 : 이벤트 또는 pod log에서 발견된 에러 내용으로 static pod yaml 설정 변경 해야함
  2. static pod yaml 위치 확인
## kubelet config 확인
ssh node01
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
## KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml
exit 
grep -i staticPodPath /var/lib/kubelet/config.yaml
  1. static pod yaml 설정 변경
vi /etc/kubernetes/manifests/kube-scheduler.yaml

kube-controller-manager 이슈

  1. 모든 리소스 확인 : 네임스페이스 kube-system에서 동작하는 pod에 이상이 없는지 확인
kubectl get all -A
  1. 이상발 견 : kube scheduler pod 의 이벤트 내용 확인
kubectl describe pod/kube-controller-manager-controlplane -n kube-system
  1. 특별한 이벤트가 없다면 pod log 확인
kubectl logs kube-controller-manager-controlplane -n kube-system
  1. 이벤트에서 발견된 에러 내용으로 static pod yaml 설정 변경 해야함
  2. static pod yaml 위치 확인 방법 (kubelet.service.d)
## kubelet config 확인
ssh node01
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
## KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml
exit
grep -i staticPodPath /var/lib/kubelet/config.yaml
  1. static pod yaml 설정 변경
vi /etc/kubernetes/manifests/kube-controller-manager.yaml
반응형