1. 程式人生 > >[經驗交流] kubeadm 安裝 kubernetes 一年過期的解決辦法

[經驗交流] kubeadm 安裝 kubernetes 一年過期的解決辦法

target 版本 默認 signature http style clas 有效 cipher

轉載註明原作者地址:http://www.cnblogs.com/hahp

kubeadm 是 kubernetes 提供的一個初始化集群的工具,使用起來非常方便。但是它創建的集群證書默認只有一年的有效期,一年之後隨著證書失效,各個節點以及 apiserver 都將停止服務。官方推薦一年之內至少用 kubeadm upgrade 更新一次 kubernetes 系統,更新時也會自動更新證書。不過,在產線環境或者無法連接外網的環境頻繁更新 kubernetes 不太現實。可以修改 kubeadm 創建證書的組件,讓它初始化集群時創建10年或其它有效期的證書,重新編譯後使用。

下面是我的源代碼補丁,請給所需要的 kubernetes 版本打上,然後重新編譯 kubeadm,用新編譯的 kubeadm 初始化集群:

diff -Nur kubernetes.orig/vendor/k8s.io/client-go/util/cert/cert.go kubernetes/vendor/k8s.io/client-go/util/cert/cert.go
--- kubernetes.orig/vendor/k8s.io/client-go/util/cert/cert.go    2018-02-07 17:14:40.553612448 +0800
+++ kubernetes/vendor/k8s.io/client-go/util/cert/cert.go    2018-02-10 17:20:48.301330560 +0800
@@ -104,7 +104,7 @@
         IPAddresses:  cfg.AltNames.IPs,
         SerialNumber: serial,
         NotBefore:    caCert.NotBefore,
- NotAfter: time.Now().Add(duration365d).UTC(), + NotAfter: time.Now().Add(duration365d * 10).UTC(), KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, ExtKeyUsage: cfg.Usages, } @@ -149,7 +149,7 @@ CommonName: fmt.Sprintf(
"%s@%d", host, time.Now().Unix()), }, NotBefore: time.Now(), - NotAfter: time.Now().Add(time.Hour * 24 * 365), + NotAfter: time.Now().Add(time.Hour * 24 * 3650), KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign, ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},

[經驗交流] kubeadm 安裝 kubernetes 一年過期的解決辦法