Kubernetes集群实践-排错(01)Node节点证书过期

【Kubernetes集群实践-排错(01)Node节点证书过期】笛里谁知壮士心,沙头空照征人骨。这篇文章主要讲述Kubernetes集群实践-排错(01)Node节点证书过期相关的知识,希望能为你提供帮助。
由于一些不可描述的原因,导致了节点证书没有更新,kubelet启动不了。此时就需要手动处理更新节点证书。官方文档中其实又详细的描述,再次还是个人记录下:
环境和报描述

......]Part of the existing bootstrap client certificate is expired: 2019-12-20 08:51:59 +0000 UTC ......] failed to run Kubelet: unable to load bootstrap kubeconfig: stat /etc/kubernetes/bootstrap-kubelet.conf: no such file or directory

大概类似上述的描述。我的Kubernetes版本是1.18.2,我的主节点还在,主节点/etc/kubernetes/pki/ca.key文件也在。
具体修复操作
  1. 从故障节点备份和删除 /etc/kubernetes/kubelet.conf 和 /var/lib/kubelet/pki/kubelet-client*。
  2. 在集群中具有 /etc/kubernetes/pki/ca.key 的、正常工作的控制平面节点上 执行 kubeadm kubeconfig user --org system:nodes --client-name system:node:$NODE > kubelet.conf。 $NODE 必须设置为集群中现有故障节点的名称。如果你的集群没有 ca.key,你必须在外部对 kubelet.conf 中的嵌入式证书进行签名。
  3. 将得到的 kubelet.conf 文件复制到故障节点上,作为 /etc/kubernetes/kubelet.conf。在故障节点上重启 kubelet(systemctl restart kubelet),等待 /var/lib/kubelet/pki/kubelet-client-current.pem 重新创建。
参考
  • 官方文档(英文)
    https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/
  • 官方文档(中文)
    https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/

    推荐阅读