k8s kubelet 服务无法启动报 code=exited, status=1/FAILURE错误

14 篇文章 0 订阅
14 篇文章 1 订阅

最近由于本地服务器重启,而 kubelet 服务无法启动,显示如下错误

[root@k8s-m ~]# /bin/systemctl status kubelet.service
● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: activating (auto-restart) (Result: exit-code) since Tue 2022-02-22 10:35:30 CST; 4s ago
     Docs: https://kubernetes.io/docs/
  Process: 10001 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=1/FAILURE)
 Main PID: 10001 (code=exited, status=1/FAILURE)

通过 journalctl -f -u kubelet 查看日志无任务显示,通过多方面查找,最终原因是证书问题导致的(前面文章写过node节点证书问题,这次是master节点证书问题)。

kubelet 服务启动配置文件使用 /etc/kubernetes/kubelet.conf,其中有一段关于 client 的证书配置,通过下面步骤可以显示证书的可用日期
1、复制 client-certificate-data 段的内容
2、使用 echo -n "copied_certificate_value" | base64 --decode > kubelet.crt 解码base64
3、使用  openssl x509 -in kubelet.crt -text -noout -text 显示证书日期

如果上面的结果显示证书已经过期,则通过下面步骤重新生成证书。

openssl genrsa -out kubelet.key 2048
openssl req -new -key kubelet.key -subj "/CN=kubelet" -out kubelet.csr
openssl x509 -req -in kubelet.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -out kubelet.crt -days 300 -CAcreateserial

cat kubelet.crt | base64
cat kubelet.key | base64

最后将 crt 和 key 写回到 /etc/kubernetes/kubelet.conf 文件相应的  client-certificate-data 和 client-key-data 段中,再使用以下命令可以查看到服务已经正常。

[root@k8s-m ~]# /bin/systemctl status kubelet.service 

以上是Master节点的证书,其它节点可直接删除/etc/kubernetes/kubelet.conf后重启kubelet即可。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值