kubelet簽署證書到期解決

現象
harbor鏡像平臺服務器出現內部錯誤,請求無法完成

排查
登陸dashboard發現node節點狀態都爲not ready,然後登陸node節點
看到確實都爲not ready ,本能反應是把kubelet、kube-proxy服務都重新一遍,重新後狀態任然爲notready狀態。
這時細看nodes節點狀態age爲368d,感覺應該是什麼過期了,之前還特意申請證書爲10年,應該不是證書的問題,後來查閱部署文檔發現kubelet也需要證書授權。

解決
最後kubectl get csr發現果然node-csr都是Pending狀態,需要重新kubectl certificate approve才能生效。
查資料發現默認簽署的的證書只有 1 年有效期,如果想要調整證書有效期可以通過設置 kube-controller-manager 的 --experimental-cluster-signing-duration 參數實現,該參數默認值爲 8760h0m0s,關於怎樣增加默認簽署證書時間及自動證書輪換可以參考kubernetes認證授權機制

步驟

[root@k8s01 bin]# kubectl get nodes
NAME        STATUS     ROLES    AGE    VERSION
192.168.88.34   NotReady   <none>   368d   v1.13.1
192.168.88.65   NotReady   <none>   368d   v1.13.1
[root@k8s01 bin]#  kubectl get csr
NAME                                                   AGE   REQUESTOR           CONDITION
node-csr-d8End93rQqSFRHpV65KA2yL-4CnYHT4te6D85lzO5QA   18m   kubelet-bootstrap   Pending
node-csr-iuBw7qxuiCeyiQ1x5WqTASgqVheII-KpTX0L-S8Md8Y   10m   kubelet-bootstrap   Pending
[root@k8s01 bin]# kubectl certificate approve node-csr-d8End93rQqSFRHpV65KA2yL-4CnYHT4te6D85lzO5QA 
certificatesigningrequest.certificates.k8s.io/node-csr-d8End93rQqSFRHpV65KA2yL-4CnYHT4te6D85lzO5QA approved
[root@k8s01 bin]# kubectl certificate approve node-csr-iuBw7qxuiCeyiQ1x5WqTASgqVheII-KpTX0L-S8Md8Y
certificatesigningrequest.certificates.k8s.io/node-csr-iuBw7qxuiCeyiQ1x5WqTASgqVheII-KpTX0L-S8Md8Y approved
[root@k8s01 bin]#  kubectl get csr
NAME                                                   AGE   REQUESTOR           CONDITION
node-csr-d8End93rQqSFRHpV65KA2yL-4CnYHT4te6D85lzO5QA   19m   kubelet-bootstrap   Approved,Issued
node-csr-iuBw7qxuiCeyiQ1x5WqTASgqVheII-KpTX0L-S8Md8Y   11m   kubelet-bootstrap   Approved,Issued
[root@k8s01 bin]# kubectl get nodes
NAME        STATUS   ROLES    AGE    VERSION
192.168.88.34   Ready    <none>   368d   v1.13.1
192.168.88.65   Ready    <none>   368d   v1.13.1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章