目錄
- 問題
- 編譯
- 檢查結果
問題
- 當我使用kubeadm部署成功k8s集群時在想默認生成的證書有效期是多久,如下所示
/etc/kubernetes/pki/apiserver.crt #1年有效期
/etc/kubernetes/pki/front-proxy-ca.crt #10年有效期
/etc/kubernetes/pki/ca.crt #10年有效期
/etc/kubernetes/pki/apiserver-etcd-client.crt #1年有效期
/etc/kubernetes/pki/front-proxy-client.crt #1年有效期
/etc/kubernetes/pki/etcd/server.crt #1年有效期
/etc/kubernetes/pki/etcd/ca.crt #10年有效期
/etc/kubernetes/pki/etcd/peer.crt #1年有效期
/etc/kubernetes/pki/etcd/healthcheck-client.crt #1年有效期
/etc/kubernetes/pki/apiserver-kubelet-client.crt #1年有效期
- 也可以通過
kubeadm certs check-expiration查看證書和有效期 - 當然可以使用
kubeadm certs renew all來續訂證書,但是證書更新了那些服務如果要重啟就很麻煩 - 所以我想修改kubeadm原始碼讓默認生成的證書有100年有效期
編譯
- 官方檔案:編譯k8s
- 下載原始碼:
git clone --depth=1 -b v1.24.2 [email protected]:kubernetes/kubernetes.git,目前最新的kubeadm版本是v1.24.2,所以直接克隆這個標簽 - 找到該版本使用的鏡像:
K8S_IMG="k8s.gcr.io/build-image/kube-cross:$(cat ./build/build-image/cross/VERSION)" - 我已經放到阿里云上了,現在只需執行:
docker pull registry.cn-hangzhou.aliyuncs.com/janbar-k8s/kube-cross:v1.24.0-go1.18.3-bullseye.0到本地就可以了 - 下載到編譯機器,將tag改為官方的格式:
docker tag registry.cn-hangzhou.aliyuncs.com/janbar-k8s/kube-cross:v1.24.0-go1.18.3-bullseye.0 $K8S_IMG - 修改 NewSelfSignedCACert 方法的 NotAfter 為(100年): now.Add(duration365d * 100).UTC():
vim ./staging/src/k8s.io/client-go/util/cert/cert.go - 修改 CertificateValidity 為: time.Hour * 24 * 365 * 99:
vim ./cmd/kubeadm/app/constants/constants.go - 最終修改提交如下圖所示,已經將1年和10年的證書都改成100年

- 編譯kubeadm:
cd build/ && ./run.sh make kubeadm - 執行命令查看編譯kubeadm的版本:
./_output/dockerized/bin/linux/amd64/kubeadm version - 這個可執行程式就可以替換你自己用那個就行了
檢查結果
- 執行檢查證書命令:
kubeadm alpha certs check-expiration

- 可以看到所有證書有效期都變為100年了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/498677.html
標籤:Go
上一篇:IOS OpenGL ES GPUImage 影像Sobel邊緣檢測,類似漫畫反色 GPUImageSobelEdgeDetectionFilter
下一篇:Java 插入公式到PPT幻燈片
