重启机器后,kubelet没有自启动,手动启动失败,检查日志反馈找不到bootstrap-kubelet.conf这个文件。
systemctl start kubelet
journalctl -u kubelet
57481 run.go:74] "command failed" err="failed to run Kubelet: unable to load bootstrap kubeconfig: stat /etc/kubernetes/bootstrap-kubelet.conf: no such file or directory"
bootstrap-kubelet.conf这个文件的主要作用是引导 Kubelet 与控制平面节点通信,获得永久的 kubeconfig 文件和认证信息。
那么bootstrap-kubelet就相当于是引导令牌!,从这里就可以定位到是证书方面的问题
bootstrap-kubelet工作流程:
Kubelet 启动时读取 bootstrap-kubelet.conf 文件,并使用其中的引导令牌与 API 服务器进行认证。
Kubelet 请求加入集群,并尝试注册到控制平面。
API 服务器验证引导令牌,并为节点分配正式的认证凭据。
Kubelet 接收到正式的 kubeconfig 文件(/etc/kubernetes/kubelet.conf),然后切换到该文件进行后续通信
解决方法:
备份并重新生成证书
# 拷贝 admin.conf 到 kubelet.conf ,再重新启动kubelet服务
cp /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
cp -a /etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf
systemctl daemon-reload && systemctl restart kubelet
哪里有问题还望各位大佬指导出来!!!