遇到好几次出现k8s 本身证书也没过期,但是在日志中显示 failed to run Kubelet: unable to load bootstrap kubeconfig: stat
/etc/kubernetes/bootstrap-kubelet.conf: no such file or directory
kubelet 无法启动
在前边我们就可以看到这个报错,如果你对k8s的认证比较了解的话,就会知道bootstrap-kubelet.conf是k8s API的引导令牌(Bootstrap Tokens)认证相关的文件。该机制会根据证书生成token,然后将信息写在这个文件里边。
如果你不知道也没有关系,继续往下看,下边会循环报这个错:
Failed while requesting a signed certificate from the master: cannot create certificate signing request
"请求签名证书时失败:无法创建证书签名请求。"已经说的很清楚了。
其实就是客户端的证书失效导致的,直接更新证书和配置文件就可以了
cd /etc/kubernetes/pki/
mkdir backup
mv apiserver.crt apiserver-etcd-client.key apiserver-kubelet-client.crt front-proxy-ca.crt front-proxy-client.crt front-proxy-client.key front-proxy-ca.key apiserver-kubelet-client.key apiserver.key apiserver-etcd-client.crt backup
kubeadm init phase certs all
cd /etc/kubernetes/
mkdir backup
mv admin.conf controller-manager.conf kubelet.conf scheduler.conf backup/
kubeadm init phase kubeconfig all
- 拷贝用户权限文件(一般不用)
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
直接按照上述命令干就完了,操作之前最好备份一下