반응형
서버 작업 중 kubelet.service 재기동시 계속 종료되는 현상이 발생되어 journalctl -xeu kubelet를 통해 로그를 확인하였으나, 그 당시 엄청 많은 쓸데없는 에러로 인해서 해당 문제를 해결하는데 시간을 많이 허비 하였다.
(로그찾을때 E(Error) 만 보느라 F(Fatal)을 놓쳤었음.)
아래 에러로 인하여 kubelet이 재기동 되지 않은 것을 확인하였으며, kenel panic을 재조정하여 해결하였다.
Failed to start ContainerManager invalid kernel flag: kenrnel/panic, expected valued: 10, actual value :0
이 문제는 kubeadm으로 k8s 설치시 발생하진 않지만, kubespray로 k8s를 설치하게되면, 기본적으로 kernel.panic=10으로 들어가게된다.
해당 옵션은 kubelet 기동 인자 전달시 예상한값과 다를 경우 패스하거나 실패 시키는 옵션인데, 누군가 kernel.panic=0 으로 변경하여 에러가 발생하였다.
조치방법은 /etc/sysctl.conf 내 kernel.panic 옵션의 값을 변경하면된다.
# vi /etc/sysctl.conf
kernel.panic=10
기타.
kubespray로 k8s를 설치할 경우 kubelet service파일(/etc/systemd/system/kubelet.service)에 인자들이 들어간다.
적용된 kernel.panic 옵션을 통해 해당 인자들이 탐지되어 정상기동하거나 실패하는 듯 하다.
# cat /etc/systemd/system/kubelet.service
[Service]
EnvironmentFile=-/etc/kubernetes/kubelet.env
ExecStart=/usr/local/bin/kubelet \
$KUBE_LOGTOSTDERR \
$KUBE_LOG_LEVEL \
$KUBELET_API_SERVER \
$KUBELET_ADDRESS \
$KUBELET_PORT \
$KUBELET_HOSTNAME \
$KUBELET_ARGS \
$DOCKER_SOCKET
반응형
'Develop > k8s' 카테고리의 다른 글
serviceAccount 사용중인 pod 조회 (field-selector) (0) | 2024.09.23 |
---|---|
kubeadm token 재생성 (0) | 2024.09.11 |
k8s container image prune CronJob (0) | 2024.07.05 |
Alpine linux Pod shell script No such file or directory (0) | 2024.04.17 |
cri-o error validating runtime config: cannot enable checkpoint/restore support without the criu binary in (0) | 2024.04.09 |