一、重新编译kubeadm,生成新的证书
查看证书的有效期
kubeadm alpha certs check-expiration
一)编译kubeadm
1、下载源码并切换指定分支
yum -y install git
git clone https://github.com/kubernetes/kubernetes.git
cd kubernetes && git checkout -b v1.19.15
2、下载go的编译环境
查看kube-cross的版本可以去源码文件的build\build-image\cross查看,具体命令为:
cat
使用docker镜像进行编译
https://hub.docker.com/r/wzshiming/kube-cross/tags 在dockerhub 下载相应的版本
docker pull gcrcontainer/kube-cross:v1.16.15-1
docker run --rm -v /root/kubernetes/:/go/src/k8s.io/kubernetes -it gcrcontainer/kube-cross:v1.16.15-1
3、修改源码
vim ./staging/src/k8s.io/client-go/util/cert/cert.go
//此文件修改如下内容
maxAge := time.Hour * 24 * 365 * 100 #修改后 给证书期限为100年
vim ./cmd/kubeadm/app/constants/constants.go
//此文件修改如下内容
CertificateValidity = time.Hour * 24 * 365 * 100
4、编译
# 切到换源码跟路径,编译kubeadm, 这里主要编译kubeadm 即可
make
编译后的文件所在路径
./_output/local/bin/linux/amd64/kubeadm
二)生成新的证书
1、备份原来的证书和kubeadm
mkdir backups
cp /etc/kubernetes/pki/ backups/ -a
cp /usr/bin/kubeadm backups/ -a
cp
2、备份完以后用新编译的文件覆盖掉以前的
#用源码包里的kubeadm覆盖掉以前的
\cp
3、更新证书
kubeadm alpha certs renew all
#然后查看
kubeadm alpha certs check-expiration