重新編譯 Kubeadm 將叢集更新證書為10年有效期
阿新 • • 發佈:2022-01-24
重新編譯 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.go
NotAfter: now.Add(duration365d * 100).UTC(),
-
修改
./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