您好,登錄后才能下訂單哦!
Kubelet簡介
Kubelet組件運行在Node節點上,維持運行中的Pods以及提供kuberntes運行時環境,主要完成以下使命:
1.監視分配給該Node節點的pods
2.掛載pod所需要的volumes
3.下載pod的secret
4.通過docker/rkt來運行pod中的容器
5.周期的執行pod中為容器定義的liveness探針
6.上報pod的狀態給系統的其他組件
7.上報Node的狀態
現象
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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。