k8s v1.19版本之后,自签证书过期x509: certificate has expired or is not yet valid

前言

Kubernetes 1.16 版本之前,kubeadm 工具的 alpha certs 子命令用于生成和管理 Kubernetes 集群的证书。然而,从 Kubernetes 1.19 版本开始,kubeadm 引入了一套新的证书管理 API,并移除了 alpha certs 子命令。

kubeadm 的正式证书管理功能来生成和更新 Kubernetes 集群的证书。你可以使用以下命令来生成证书:

kubeadm init phase certs all

这个命令将根据 kubeadm 的配置生成所需的证书。生成的证书将存储在指定的证书目录中,通常是 /etc/kubernetes/pki/

解决

#查看证书到期时间
kubeadm certs check-expiration

# 备份 kubernetes配置
cp -r /etc/kubernetes /etc/kubernetes_bak

#更新自签证书
kubeadm certs renew all
# 此时所有证书都已重新生成,在 /etc/kubernetes/pki 下。/etc/kubernetes/admin.conf、/etc/kubernetes/controller-manager.conf、/etc/kubernetes/scheduler.conf 也已经更新了。


#复制配置
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

#之后重启kubelet,docker(master与node都要重启)
systemctl restart docker
systemctl restart kubelet

k8s v1.16.3,Unable to connect to the server: x509: certificate has expired or is not yet valid

说明:
certs renew 使用现有的证书作为属性(Common Name、Organization、SAN 等)的权威来源, 而不是 kubeadm-config ConfigMap。强烈建议使它们保持同步。
kubeadm certs renew 可以更新任何特定的证书,或者使用子命令 all 更新所有的证书,如下所示:

kubeadm certs renew all
posted @ 2024-03-28 09:58  牛奔  阅读(49)  评论(0编辑  收藏  举报