重新编译 Kubeadm 将集群更新证书为10年有效期
重新编译 Kubeadm 将集群更新证书为10年有效期
Kubernetes 版本:1.21.8
kubeadm 安装的 Kubernetes 集群默认签发证书有效期为一年,我们希望将证书签发时间设置为十年。
下载源码包
国内下载源代码可能会比较慢,推荐使用码云克隆 Github 的 Kubernetes 仓库后在码云拉取源代码。
git clone https://gitee.com/liy36/kubernetes.git
git checkout -b release-1.21 v1.21.8
修改 Kubeadm 源代码
-
修改
./staging/src/k8s.io/client-go/util/cert/cert.goNotAfter: now.Add(duration365d * 100).UTC(), -
修改
./cmd/kubeadm/app/constants/constants.goCertificateValidity = time.Hour * 24 * 3650
编译
编译之前需要配置好
Go环境
make WHAT=cmd/kubeadm GOFLAGS=-v
更新集群证书
kubeadm config view > kubeadm.yaml
./kubeadm certs renew all --config=kubeadm.yaml
重启相关服务
docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart
验证
echo | openssl s_client -showcerts -connect 127.0.0.1:6443 -servername api 2>/dev/null | openssl x509 -noout -enddate
notAfter=Dec 31 10:41:57 2121 GMT