k8s证书有效期修改

1.首先我们查看当前证书有效期,有几种方式可以查询

第一种方式:

kubeadm alpha certs check-expiration

微信截图_20220531110800.png

第二种方式:

cd /etc/kubernetes/pki
for i in $(ls *.crt); do echo "===== $i ====="; openssl x509 -in $i -text -noout | grep -A 3 'Validity' ; done

微信截图_20220531110830.png

2.证书有效期修改

首先安装golang,下载地址是https://golang.google.cn/dl/,现在最新的版本是go1.18.2

wget https://studygolang.com/dl/golang/go1.18.2.linux-amd64.tar.gz
tar -zxvf go1.18.2.linux-amd64.tar.gz -C /usr/local/

添加环境变量

echo "export PATH=$PATH:/usr/local/go/bin" >>/etc/profile
source /etc/profile

查看安装是否成功

go version
go version go1.18.2 linux/amd64

下载k8s源码,首先查看自己环境的k8s版本

kubectl get node

查看到本地的是v1.18.15这个版本

去github上拉取源码,地址是https://github.com/kubernetes/kubernetes

选好自己的版本然后下载

wget https://github.com/kubernetes/kubernetes/archive/refs/heads/release-1.18.zip
unzip release-1.18.zip #解压

进入K8s源码文件

cd kubernetes-release-1.18

修改有效期主要修改两个文件constants.go和cert.go

修改constants.go文件

vi cmd/kubeadm/app/constants/constants.go

找到关键字CertificateValidity,大概在49行

CertificateValidity = time.Hour * 24 * 365
#修改为
CertificateValidity = time.Hour * 24 * 365 * 10

这样就加了10年,接着我们修改cert.go文件

vi staging/src/k8s.io/client-go/util/cert/cert.go

找到关键字NotAfter:,大概在66行

NotAfter:              now.Add(duration365d * 10).UTC(),

默认就是10年,我们本来只需要10年,这里不需要修改

这两个改好了,我们就可以编译源码了。

cd /root/kubernetes-release-1.18

开始编译

make WHAT=cmd/kubeadm GOFLAGS=-v

编译完后查看结果,就可以看到生成的kubeadm二进文件,在_output/bin/目录下

ls -l /root/kubernetes-release-1.18/_output/bin/

微信截图_20220531114056.png

接着我们更换master节点的kubeadm

cp /usr/bin/kubeadm /usr/bin/kubeadm_bak
/root/kubernetes-release-1.18/_output/bin/kubeadm /usr/bin/kubeadm

kubeadn更换以后再把证书更新下

cd /etc/kubernetes
cp -R pki pki_bak #备份
kubeadm alpha certs renew all #更新证书
kubeadm alpha certs check-expiration #然后再次验证证书时间

微信截图_20220531113735.png

我们可以看到已经更新到了2032年5月28日了,这样证书有效期修改就成功了。


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/846.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。