1. 程式人生 > 其它 >重新編譯 Kubeadm 將叢集更新證書為10年有效期

重新編譯 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