替换原有的kubeadm的原始的1年的ca证书
--思路,重新编译kubernetes,使用kubeadm重新生成证书
1.查看kubeadm的版本
kubeadm alpha certs check-expiration
2.下载kubernetes的源码
git clone https://github.com/kubernetes/kubernetes.git
3.切换到对应的版本分支
查看具体的版本
kubectl get no #我这里时1.16.2的
切换
git checkout -b test v1.16.2
4.修改kubernetes自带的kubeadm的过期时间
cd $k8s-dir
vim cmd/kubeadm/app/constants/constants.go #找到CertificateValidity ,修改如下
CertificateValidity = time.Hour * 24 * 365 * 100 #后面加上* 100
5.配置go环境 --根据K8S版本不同。需要的go环境也不一样,根据实际情况
wget https://studygolang.com/dl/golang/go1.12.4.linux-amd64.tar.gz
tar zxvf go1.11.2.linux-amd64.tar.gz -C /usr/local
6.配置go环境
vim /etc/profile
export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopath
export PATH=$PATH:$GOROOT/bin
source /etc/profile
go version #验证
7.重新编译
cd $K8S-dir
make WHAT=cmd/kubeadm #保持网络畅通
8.成功后出现_output文件夹
ls _output/bin/
conversion-gen deepcopy-gen defaulter-gen go2make go-bindata kubeadm openapi-gen
9.保持现有kubeadm和证书相关
cp /usr/bin/kubeadm{,.bak}
cp -r /etc/kubernetes/pki{,.bak}
10.替换新的kubeadm
cp _output/bin/kubeadm /usr/bin/kubeadm
11.生成新的证书
cd /etc/kubernetes/pki
kubeadm alpha certs renew all #此时查看证书,都已经时最新的证书了
12.验证结果
13.验证集群是否正常-如不正常,恢复备份.bak