深究Kubernetes源碼-Kubelet -1 總體模塊分析
基于kubernetes1.26
1 總體模塊

kubelet包含一系列的Manager,如上圖,核心功能是處理節(jié)點(diǎn)上Pod的生命周期,創(chuàng)建/更新/刪除。

kubelet實(shí)現(xiàn)了BootStrap和SyncHandler接口,BootStrap為啟動過程接口,SyncHandler為處理Pod接口。
2 啟動流程
主要分為兩個階段,第一階段為實(shí)例化創(chuàng)建模塊組件

第二階段為創(chuàng)建實(shí)例化Kubelet結(jié)構(gòu)體,并運(yùn)行Kubelet,啟動相關(guān)模塊功能的協(xié)程,后面章節(jié)中會逐步分析各個模塊功能。

kubelet核心功能是處理Node上的Pod生命周期,所以Pod的來源是個關(guān)鍵問題,如上圖,Pod來源有三個:
Kube-apiServer ,常規(guī)Kube-apiserver中生成的Pod
靜態(tài)文件,通常所說的靜態(tài)Pod,其中StaticPodPath默認(rèn)為/etc/kubernetes/manifests
靜態(tài)URL,HTTP文件服務(wù)器提供靜態(tài)Pod Config,與靜態(tài)文件類似,不常用
從Kube-apiserver獲取Pod是使用ListWatch機(jī)制,從apiserver獲取Pod spec.nodeName與節(jié)點(diǎn)nodeName一致的Pod,即被調(diào)度器bind到此節(jié)點(diǎn)的Pod
標(biāo)簽: