1. 获取源码
访问:https://github.com/kubernetes/kubernetes/releases,下载特定版本源码
wget https://github.com/kubernetes/kubernetes/archive/v1.20.4.tar.gz
tar -zxvf v1.20.4.tar.gz
mv v1.20.4.tar.gz kubernetes
cd kubernetes
2. 修改证书有效期
查看网上的资料主要有两个地方需要修改
修改 CA 有效期为 100年(默认为 10年)
vim ./staging/src/k8s.io/client-go/util/cert/cert.go
// NotAfter: now.Add(duration365d * 10).UTC(), 修改此处
NotAfter: now.Add(duration365d * 100).UTC(),
修改证书有效期为 100年(默认为 1年)
vim ./cmd/kubeadm/app/constants/constants.go
// CertificateValidity = time.Hour * 24 * 365 修改此处
CertificateValidity = time.Hour * 24 * 365 * 100
源代码改好了,接下来就是编译 kubeadm 了
3. 编译
编译需要 go 环境,此处省略
# 编译kubeadm, 这里主要编译kubeadm 即可
make all WHAT=cmd/kubeadm GOFLAGS=-v
#
mv /usr/bin/kubeadm /usr/bin/kubeadm_backup
cp _output/local/bin/linux/amd64/kubeadm /usr/bin/kubeadm
chmod +x /usr/bin/kubeadm
# 验证版本
kubeadm version
4.执行命令更新证书
可以先备份证书,证书在 /etc/kubernetes/pki
续订全部证书
kubeadm alpha certs renew all
检查证书到期时间
kubeadm alpha certs check-expiration