1、确定故障节点 故障进行操作:
cp /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.bak
rm -f /etc/kubernetes/kubelet.conf
cp /var/lib/kubelet/pki/kubelet-client* /var/lib/kubelet/pki/kubelet-client*.bak
rm -f /var/lib/kubelet/pki/kubelet-client*
2、去任意一个正常的节点,高可用另外正常的2个节点二选一 确认:/etc/kubernetes/pki/ca.key 文件存在 在这个正常节点下执行以下命令
kubeadm kubeconfig user --config=/etc/kubernetes/kubeadm-config.yaml --org system:nodes --client-name system:node:$NODE > kubelet.conf。
# $NODE 必须设置为集群中现有故障节点的名称。 手动修改生成的 kubelet.conf 以调整集群名称和服务器端点
#--config=/etc/kubernetes/kubeadm-config.yaml ,根据你的kubeadm-config.yaml文件存在位置而定,确认好kubeadm-config.yaml里面的IP以及name,如果是集群外来文件记得改好再用
3、将得到的 kubelet.conf 文件复制到故障节点上,作为 /etc/kubernetes/kubelet.conf 接着,在故障节点上重启 kubelet(systemctl restart kubelet),等待 /var/lib/kubelet/pki/kubelet-client-current.pem 重新创建。
4、手动编辑 kubelet.conf 指向轮换的 kubelet 客户端证书,方法是将 client-certificate-data 和 client-key-data 替换为:
client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem
client-key: /var/lib/kubelet/pki/kubelet-client-current.pem
5、再次重启kubelet
6、等待集群ready即可