重新编译 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 源代码

  1. 修改 ./staging/src/k8s.io/client-go/util/cert/cert.go

    NotAfter:              now.Add(duration365d * 100).UTC(),
    
  2. 修改 ./cmd/kubeadm/app/constants/constants.go

    CertificateValidity = 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