K8S集群修改100年证书

1、查看当前集群的证书时间,使用命令:
for i in /etc/kubernetes/pki/*.crt;do echo $i; openssl x509 -in $i -text -noout|egrep "Not Before|Not After";echo "-----------";done
或者使用命令openssl x509 -in apiserver.crt -text -noout也可查看到证书时间(其中apiservr.crt代表的是API的证书,)

2、下载Go语言环境(可通过百度搜索go中文社区进行下载)
wget https://studygolang.com/dl/golang/go1.17.5.linux-amd64.tar.gz
3、解压Go安装包到/usr/local/下
tar -xvf go1.17.5.linux-amd64.tar.gz -C /usr/local/
4、将 export PATH=$PATH:/usr/local/go/bin 写入到/etc/profile
5、刷新环境变量配置文件生效
source /etc/profile
6、验证Go版本
go version ————>go version go1.17.5 linux/amd64
7、将K8S源码拉去到本地
git clone https://github.com/kubernetes/kubernetes.git
8、切换到指定的k8s版本
cd /kubernetes && git checkout -b remotes/origin/release-1.12 v1.22.4 #我这里K8S版本为V1.22.4 可通过kubeadm version 查询自己使用的版本
9、修改kubeadm源码包默认证书策略
vim cmd/kubeadm/app/util/pkiutil/pki_helpers.go
将652行的kubeadmconstants.CertificateValidity替换为time.Hour*24*365*100

10、重新编译kubeadm (过程耗时较长,耐心等待)
make WHAT=cmd/kubeadm GOFLAGS=-v
11、重新编译后的kubeadm会放在_output/bin/kubeadm,可将其先放在/root
cp _output/bin/kubeadm /root/
12、备份旧的kubeadm并将新的替换上
cp /usr/bin/kubeadm /usr/bin/kubeadm.bak
cp kubeadm /usr/bin/ #将新的kubeadm替换
chmod a+x /usr/bin/kubeadm #赋予执行权限
13、备份旧的证书
cp -r /etc/kubernetes/pki /etc/kubernetes/pki.bak
14、重新生成证书
kubeadm alpha certs renew all --config= /root/init-k8s/kubeadm-config.yaml #其中--config后面的文件代表初始化集群时用到的yaml文件

posted @ 2021-12-13 19:51  ZANAN  阅读(528)  评论(0编辑  收藏  举报