最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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源碼的評論 (共 條)

分享到微博請遵守國家法律
灵川县| 新泰市| 无为县| 奉贤区| 上栗县| 东平县| 兴宁市| 梅州市| 建湖县| 安仁县| 汝城县| 仪陇县| 鹰潭市| 聂拉木县| 永仁县| 芮城县| 高要市| 来安县| 明光市| 镇宁| 南召县| 普安县| 文成县| 岳西县| 通辽市| 宜兴市| 桐城市| 南召县| 桃源县| 加查县| 常德市| 长兴县| 开远市| 宿州市| 大安市| 姚安县| 新干县| 新巴尔虎右旗| 景德镇市| 当阳市| 安溪县|