原生 K8S 更新 kubelet 证书

现象

k8s 集群某一个节点 kubelet 挂了,无法启动

错误

1
2
# cat /var/log/messages | grep kubelet | grep failed
failed to run Kubelet: unable to load bootstrap kubeconfig: stat /etc/kubernetes/bootstrap-kubelet.conf: no such file or directory

解决

1
2
3
4
5
6
7
8
rm -rf /var/lib/kubelet/pki/

# 大于1.20的版本
kubectl get cm kubeadm-config -n kube-system -o=jsonpath="{.data.ClusterConfiguration}" > kubeadm.yaml
kubeadm kubeconfig user --org system:nodes --client-name system:node:$(hostname) --config kubeadm.yaml > /etc/kubernetes/kubelet.conf

# 小于1.20的版本
kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > /etc/kubernetes/kubelet.conf

其他解决方案

参考:https://blog.csdn.net/margu_168/article/details/135844420