K8sk8s

一文学会kubernetes集群 master证书签约期限更新为

2021-07-28  本文已影响0人  sknfie

概述

用kubeadm安装kubernetes集群,默认签发的证书有效期为1年,如果客户要求不能频繁对kubernetes 集群做变更施工,一般考虑将证书签发期限改为10年。

1、master节点

验证apiserver.crt证书有效期限

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout | grep Not 

2、下载kubernetes源码

git和Golang已安装,登录192.168.1.10主机,执行以下命令

cd /root/kubeadm/tmp/ 
git clone https://github.com/kubernetes/kubernetes/ 

切换到1.19.0分支

cd kubernetes 
git checkout -b remotes/origin/release-1.19.1 v1.19.0

3、修改Kubeadm源码包更新证书策略

实操提示:kubernetes集群自签CA证书默认是10年期限,如果需要修改期限为20年,可修改这个文件的代码

/root/kubeadm/tmp/kubernetes/staging/src/k8s.io/client-go/util/cert/cert.go 
NotAfter: now.Add(duration365d * 10).UTC(), 
NotAfter: now.Add(duration365d * 20).UTC(), 

采用kubeadm安装kubernetes集群,证书期限由kubeadm组件负责,所以需修改该组件源码,修改内 容如下:

vi /root/kubeadm/tmp/kubernetes/cmd/kubeadm/app/constants/constants.go 
CertificateValidity = time.Hour * 24 * 365 
CertificateValidity = time.Hour * 24 * 3650 # 代码末尾加一个0,也就是10 
年,其他代码不要动,保存退出 
cd /root/kubeadm/tmp/kubernetes 
make WHAT=cmd/kubeadm GOFLAGS=-v 
cp _output/bin/kubeadm /root/kubeadm/ 

实操提示:如果使用编译kubeadm组件安装k8s集群,k8s集群master证书是10年

4、 k8s集群所有节点更新kubeadm

备份旧kubeadm

cp -rp /usr/bin/kubeadm /usr/bin/kubeadm.old 
cp /root/kubeadm/kubeadm /usr/bin/kubeadm 

5、更新master节点证书

登录192.168.1.10主机
备份旧证书

cp -rp /etc/kubernetes/pki /etc/kubernetes/pki.old 
cd /etc/kubernetes/pki 
kubeadm alpha certs renew all --config=/root/kubeadm/kubeadm-config.yaml 
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout | grep Not 
cp -f /etc/kubernetes/admin.conf $HOME/.kube/config 
kubeadm alpha certs check-expiration 

6、 继续按以下步骤续签另外两个master节点证书期限

cp -rp /usr/bin/kubeadm /usr/bin/kubeadm.old 
cp /root/kubeadm/kubeadm /usr/bin/kubeadm 
cp -rp /etc/kubernetes/pki /etc/kubernetes/pki.old 
cd /etc/kubernetes/pki 
kubeadm alpha certs renew all --config=/root/kubeadm/kubeadm-config.yaml 
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout | grep Not 
openssl x509 -in /etc/kubernetes/pki/apiserver-etcd-client.crt -text -noout | 
grep Not 
openssl x509 -in /etc/kubernetes/pki/apiserver-kubelet-client.crt -text -noout 
| grep Not 
cp -f /etc/kubernetes/admin.conf $HOME/.kube/config 
kubeadm alpha certs check-expiration 
上一篇 下一篇

猜你喜欢

热点阅读