[k8s, 트러블슈팅] kubelet 이 동작하지 않는 현상

sang yun Lee·2023년 9월 21일
0

k8s

목록 보기
11/18

현상


kubeletactive 상태가 되지 않고 멈추는 현상

> sudo systemctl status kubelet
...
     Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/kubelet.service.d
             └─10-kubeadm.conf
     Active: activating (auto-restart) (Result: exit-code) since Thu 2023-09-21 10:41:39 KST; 9s ago
   Main PID: 2816561 (code=exited, status=1/FAILURE)

원인


kebelet 은 시작 시 아래의 Config 를 Load 한다.

# /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
===
...
Environment="...--kubeconfig=/etc/kubernetes/kubelet.conf"
...

그런데 이중 /var/lib/kubelet/config.yaml 가 존재하지 않아 Error 가 났다.
/var/lib/kubelet/config.yamlkubeadm init 이후에나 만들어지는 것인데, 그냥 kubelet 의 역할에 대해 크게 고민하지 않고 왜 안되는 지만 찾았던 것이 나의 문제였다.

이와 관련 스택오버플로우 :
https://github.com/kubernetes/kubernetes/issues/66108#issuecomment-502265575

해결


kubeadm init 을 통해 /var/lib/kubelet/config.yaml 이 생성되게 하였다. (머쓱)

내가 원인 추적한 방법


1. 에러 로그 분석

kebelet 의 경우 systemctl 하에 관리되고 있기에 /var/log/syslog 안에 로그로 쌓인다. 따라서 우선 tail /var/log/syslog 을 통해 로그를 확인하였다.

  > tail /var/log/syslog
  ===
  ... "command failed" err="failed to load kubelet config file, error: failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file \"/var/lib/kubelet/config.yaml\", error: open /var/lib/kubelet/config.yaml: no such file or directory, path: /var/lib/kubelet/config.yaml"
  ... kubelet.service: Main process exited, code=exited, status=1/FAILURE
  ... kubelet.service: Failed with result 'exit-code'.

/var/lib/kubelet/config.yaml 라는 파일을 읽으려 했으나 파일이 없다는 에러를 확인할 수 있었다.

2. 상태(status) 정보 분석

systemctl status kubelet 을 통한 에러 정보를 획득한다.

# systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
     Loaded: loaded (/lib/systemd/system/kubelet.service; e>
    Drop-In: /etc/systemd/system/kubelet.service.d
             └─10-kubeadm.conf
     Active: activating (auto-restart) (Result: exit-code) >
       Docs: https://kubernetes.io/docs/home/
    Process: 2823632 ExecStart=/usr/bin/kubelet $KUBELET_KU>
   Main PID: 2823632 (code=exited, status=1/FAILURE)

/etc/systemd/system/kubelet.service.d 폴더 안의 10-kubeadm.conf 을 읽다가 에러가 난 것으로 보인다.

0개의 댓글