五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

深究Virtual-Kubelet源碼

2023-02-22 14:58 作者:黑暗光影DIY  | 我要投稿

代碼基于v1.5.0

文檔:https://virtual-kubelet.io/docs/

源碼:https://github.com/virtual-kubelet/virtual-kubelet

1?簡介和概要

Virtul-Kubelet實現(xiàn)了Kubelet的基本功能,但與Kubelet南向?qū)覥RI不同,Virtual-Kubelet通過Provider對接南向的容器實例或其他容器相關(guān)服務(wù),如下圖示意

主流的Provider如下,國內(nèi)的Ali ECI,Huawei CCI

virtual-kubelet包含一條主命令和3條子命令,啟動virtual-kubelet進(jìn)程使用主命令,如下:

virtual-kubelet項目本身是一個框架,并沒有實際功能,通過provider項目實現(xiàn)provider功能才具備實際能力。下面主要分析如何實現(xiàn)一個Provider及其工作流程。

看類圖,主要包括NodeController和PodController,NodeController主要功能是向KubeapiServer同步Node狀態(tài),維護(hù)corev1.Node對象,主要邏輯是由virtual-kubelet項目實現(xiàn)。

2 Provider項目實現(xiàn)和關(guān)鍵流程

tensile-kube https://github.com/virtual-kubelet/tensile-kube 是一個南向?qū)覭ubernetes的Provider項目,tensile-kube采用node-cli作為腳手架,實現(xiàn)了啟動和加載流程,其核心是生成NodeController和PodController對象,并啟動協(xié)程,執(zhí)行Run方法,NodeController不需要Provider項目實現(xiàn),我們主要分析PodController和Provider邏輯。VirtualK8S實現(xiàn)了virtual-kubelet框架中所需接口。

PodController.Run是關(guān)鍵啟動加載和邏輯處理流程入口,核心邏輯包括:

  • 調(diào)用Provider.NotifyPods,實現(xiàn)Provider Pods狀態(tài)變化反向通知觸發(fā)狀態(tài)同步

  • 注冊podsInformer EventHandler,對KubeapiServer中Pod變化進(jìn)行處理,分發(fā)到對應(yīng)的處理隊列

  • 刪除Provider中懸垂的Pod

  • 啟動syncPodsFromKubernetes/syncPodStatusFromProvider/deletePodsFromKubernets隊列進(jìn)行對應(yīng)邏輯處理

以syncPodFromKubernetesHandler為代表分析流程,核心業(yè)務(wù)是同步Provider中的Pod,如果Pod刪除,調(diào)用進(jìn)入delete流程,否則進(jìn)入創(chuàng)建或更新流程,在createOrupdate中,首先調(diào)用GetPod查詢provider中是否存在Pod,如果存在則調(diào)用UpdatePod執(zhí)行更新,如果不存在則執(zhí)行CreatePod執(zhí)行創(chuàng)建操作。

對于tensile-kube Provider項目,則調(diào)用VirtualK8S.GetPod/UpdatePod/CreatePod/DeletePod/NotifyPods等方法。


開源的東西轉(zhuǎn)載不需要說明出處,就說自己寫的

深究Virtual-Kubelet源碼的評論 (共 條)

分享到微博請遵守國家法律
沈丘县| 神农架林区| 印江| 桂平市| 望城县| 锦屏县| 洱源县| 贡觉县| 宜宾市| 远安县| 太康县| 恭城| 仁寿县| 长子县| 光山县| 九龙城区| 贵定县| 平阴县| 磴口县| 岚皋县| 汉川市| 陆河县| 文成县| 滨海县| 调兵山市| 略阳县| 邵阳市| 神池县| 儋州市| 舟山市| 固阳县| 博白县| 贞丰县| 正镶白旗| 湖州市| 广安市| 沁水县| 湖南省| 茂名市| 高陵县| 游戏|