k8s kubelet 服务无法启动报 code=exited, status=1/FAILURE错误 多种原因及解决

Posted frankgy01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s kubelet 服务无法启动报 code=exited, status=1/FAILURE错误 多种原因及解决相关的知识,希望对你有一定的参考价值。

出现这种问题的原因有多种,如果status=255且反复重启动则是正常的,配置并创建pod后就好了。如果是status=1/FAILURE则可能是以下几种问题

具体如下

1.证书过期导致kubelet无法正常起动。

可以参考:k8s kubelet 服务无法启动报 code=exited, status=1/FAILURE错误_世宝宝的博客-CSDN博客_code=exited status=1/failure

2.驱动问题,即docker的驱动与kubelet 驱动不一致

(1)查看docker驱动

root@rancher-master:~# docker info | grep Cgroup
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
WARNING: No swap limit support

(2) 查看kubelet驱动

root@rancher-master:~# cat /var/lib/kubelet/config.yaml | grep cgroup
cgroupDriver: systemd

(3) 修改docker驱动,查看/etc/docker/daemon.json文件,没有的话,手动创建,添加以下内容


   "exec-opts": ["native.cgroupdriver=systemd"]

3 .配置文件不存在

本人在Ubuntu20.04Sever中安装时,出现了这种情况,

(1)先去查看下你的:  /etc/systemd/system/kubelet.service.d下是否有10-kubeadm.conf.如果没有需要创建这个文件,并复制如下内容。

[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. 
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

(2)如有有这个文件,则在文件中加入如代码

Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --fail-swap-on=false"

(3)重新启动kubelet.service
       systemctl daemon-reload
       systemctl restart kubelet.service
 

以上是关于k8s kubelet 服务无法启动报 code=exited, status=1/FAILURE错误 多种原因及解决的主要内容,如果未能解决你的问题,请参考以下文章

k8s记一次kubelet启动后master无法获取

Rancher集群启动服务挂载rbd存储报错排查

docker启动问题引起k8s服务故障解决过程

删除K8S集群的/var/lib/kubelet目录报Device or resource busy错误解决方法

k8s 启动kubelet时报错

[k8s] kubelet单组件启动静态pod