概述
用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/
实操提示:如果使用编译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
- 续签成功,验证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
网友评论