Kubernetes集群證書過期解決辦法


問題現象

K8S集群證書過期后,會導無法創建Pod,通過kubectl get nodes也無法獲取信息,甚至dashboard也無法訪問。

一、確認K8S證書過期時間

查看k8s某一證書過期時間:

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep Not

顯示如下,通過下面可看到證書有效期是1年,從2021到2022年:

其它證書同理,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 alpha certs check-expiration

二、使用延長證書過期的方法解決K8S證書過期問題

K8S在過期之前,使用kubeadm alpha phase里的certs和kubeconfig命令,同時配合kubelet證書自動輪換機制來解決這個問題(具體操作可以百度搜索),這里介紹證書已經過期的解決方法,以下延長證書過期的方法適合kubernetes1.14、1.15、1.16、1.17、1.18版本。操作步驟如下:

2.1 下載update-kubeadm-cert.sh

百度網盤下載:
鏈接:https://pan.baidu.com/s/1WyVAwyL3mOGVFgpQ2tomCw
提取碼:f6sa

2.2 把update-kubeadm-cert.sh文件上傳到k8s各節點任意位置

2.3 在每個節點都執行如下命令

1)給update-kubeadm-cert.sh證書授權可執行權限

chmod +x update-kubeadm-cert.sh

2)執行下面命令,修改證書過期時間,把時間延長到10年

./update-kubeadm-cert.sh all

3)在master節點查詢Pod是否正常,能查詢出數據說明證書簽發完成

注:執行命令時需要斷開連接重新連接命令才生效

kubectl  get pods -n kube-system

顯示如下,能夠看到pod信息,說明證書簽發正常:

4)重啟kubelet

systemctl restart kubelet

三、驗證證書有效時間是否延長到10年

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text  | grep Not

顯示如下,通過下面可看到apiserver證書有效期是10年,從2021到2031年:

其它證書同理進行驗證,或使用統一查看命令

kubeadm alpha certs check-expiration

(轉發請注明出處:http://www.cnblogs.com/zhangyongli2011/ 如發現有錯,請留言,謝謝)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM