kubeadm替换证书

替换原有的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

原文地址:https://www.cnblogs.com/dinghc/p/14919628.html