0
点赞
收藏
分享

微信扫一扫

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

彪悍的鼹鼠 2021-09-24 阅读 67
PaaS

概述

用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 
年,其他代码不要动,保存退出 
  • 编译kubeadm
cd /root/kubeadm/tmp/kubernetes 
make WHAT=cmd/kubeadm GOFLAGS=-v 
cp _output/bin/kubeadm /root/kubeadm/ 

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 
  • 续签成功,验证apiserver.crt证书有效期限
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout | grep Not 
  • 续签证书成功后,更新linux账号的kubectl配置,更新成功,可正常使用kubectl命令工具
cp -f /etc/kubernetes/admin.conf $HOME/.kube/config 
  • 验证证书续签成功
kubeadm alpha certs check-expiration 

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

  • 登录192.168.1.11、192.168.1.12主机
  • 更新kubeadm
  • 上传编译后的kubeadm到192.168.1.11:/root/kubeadm/kubeadm
  • 上传编译后的kubeadm到192.168.1.12:/root/kubeadm/kubeadm
  • 备份旧证书
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 
  • 续签证书成功后,更新linux账号的kubectl配置,更新成功,可正常使用kubectl命令工具
cp -f /etc/kubernetes/admin.conf $HOME/.kube/config 
  • 验证证书续签成功
kubeadm alpha certs check-expiration 
举报

相关推荐

0 条评论