1.检查证书时间
kubeadm alpha certs check-expiration
2.更新证书(1年)
2.1 备份证书
cp -rp /etc/kubernetes /etc/kubernetes.bak
2.2 删除旧的证书
rm -rf /etc/kubernetes/pki/apiserver.key
2.3 重新生成证书
# 重新生成所有证书,执行这个即可 *********
kubeadm alpha certs renew all
2.4 重新生成配置文件
# 备份旧的配置
mv /etc/kubernetes/*.conf /tmp/
# 重新生成所有配置
kubeadm init phase kubeconfig all
# 重新生成单个配置文件
// 重新生成 admin 配置文件
kubeadm init phase kubeconfig admin
// 重新生成 kubelet 配置文件
kubeadm init phase kubeconfig kubelet
2.5 生效配置
- 完成证书和配置文件的更新后,需要进行一系列后续操作保证更新生效,主要包括重启 kubelet、更新管理配置
# 重启 kubelet
systemctl restart kubelet
# 更新 admin 配置,将新生成的 admin.conf 文件拷贝,替换 ~/.kube 目录下的 config 文件
cp /etc/kubernetes/admin.conf ~/.kube/config
3.手动更新证书(自定义年限,10年)
3.1 查看当前年限
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text --noout
3.2 安装go语音环境
mkdir /data/
cd /data/
cp /root/go1.20.5.linux-amd64.tar.gz .
tar zxvf go1.20.5.linux-amd64.tar.gz -C /usr/local/
# 配置环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
# 加载环境变量
source /etc/profile
3.3 修改并配置证书
unzip kubernetes-1.20.4.zip
cp -rvf kubernetes-1.20.4 /data/kubernetes
cd /data/kubernetes/
vim cmd/kubeadm/app/util/pkiutil/pki_helpers.go
# 手写这一行
560 const duration3650d = time.Hour * 24 * 365 * 10
# 删除修改为设置的变量
583 NotAfter: time.Now().Add(duration3650d).UTC(),
apt install -y make
make WHAT=cmd/kubeadm GOFLAGS=-v
cp _output/bin/kubeadm /root/
cp /usr/bin/kubeadm /usr/bin/kubeadm.old
cp /root/kubeadm /usr/bin/
chmod +x /usr/bin/kubeadm
cd /etc/kubernetes
cp -r pki/ pki.old
# 更新所有证书
kubeadm alpha certs renew all
# 重启 kubelet
systemctl restart kubelet
# 更新 admin 配置,将新生成的 admin.conf 文件拷贝,替换 ~/.kube 目录下的 config 文件
cp /etc/kubernetes/admin.conf ~/.kube/config
cd /etc/kubernetes/pki
openssl x509 -in apiserver.crt -text -noout
# 查看所有证书时间
kubeadm alpha certs check-expiration