证书轮换后 kubelet 证书管理器失败

证书轮换后 kubelet 证书管理器失败

今天我们实验室的 k8s 集群停止了工作。我仔细检查了一下,原来是因为证书过期了。

我重新生成了证书和配置,但当我重新启动 kubelet 时,我们仍然可以connection refused访问 apiserver。apiserver 正在运行,但端口 6443 未打开。调试日志时,输出中出现以下错误(可能是误导,但不确定):

Current certificate CN (system:node:lab-02) does not match requested CN (system:node:control-plane-xm2c9)

这是kubeadm已创建的集群。我曾经kubeadm重新生成所有证书(CA 除外)。使用了以下命令:

# kubeadm init phase certs apiserver --apiserver-cert-extra-sans control-plane-xm2c9 --apiserver-advertise-address 192.168.2.78
# kubeadm init phase certs apiserver-etcd-client
# kubeadm init phase certs apiserver-kubelet-client

我使用以下命令创建了配置:

# kubeadm init phase kubeconfig admin --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig kubelet  --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig controller-manager --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig scheduler --apiserver-advertise-address 192.168.2.78

我仍在筛选日志。我认为这是我的问题的根源,但我不知道如何解决它。任何帮助都很好!TIA

答案1

如果我没记错的话,问题在于上面提到的命令没有更新但需要的证书。就是证书sa。幸运的是,在我开始这项工作之前,我备份了所有证书/var/tmp,证书sa还在里面并且仍然有效。当我将sa证书复制回证书目录并重新启动kubelet时,一切又恢复正常了。

相关内容