溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用K8S源碼分析Pod內(nèi)部構造

發(fā)布時間:2021-12-15 18:49:56 來源:億速云 閱讀:95 作者:柒染 欄目:云計算

這期內(nèi)容當中小編將會給大家?guī)碛嘘P如何用K8S源碼分析Pod內(nèi)部構造,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Pod是K8S調(diào)度的基本單位,一個Pod中包含了一個Pause容器(根容器)和多個用戶容器。Pause容器的狀態(tài)代表了Pod的狀態(tài),同一個Pod中的容器共享相同的ip和數(shù)據(jù)卷。

因此,Pod的創(chuàng)建首先要構建一個Sandbox,包含pause容器并初始化網(wǎng)絡/數(shù)據(jù)卷等一系列資源。

1.sandbox構建

創(chuàng)建一個Pod首先必須要構建一個Sandbox,創(chuàng)建流程如下:

如何用K8S源碼分析Pod內(nèi)部構造

createPodSandbox是創(chuàng)建的入口方法,包含兩個步驟:

generatePodSandboxConfig - 構造sandbox的config,當中涉及到通過Kubelet生成sandbox的cgroupParent

RunPodSandBox - 通過Docker Service(dockershim)來創(chuàng)建sandbox的container并啟動。包含四個主要步驟:1. pull image; 2. create container; 3. start container; 4. init network

經(jīng)過以上兩個步驟,pod所需的sandbox就運行起來了,同時初始化好了網(wǎng)絡/數(shù)據(jù)卷等資源。

2.用戶Container創(chuàng)建

建立了運行的SandBox之后,就可以創(chuàng)建用戶Container,并加入到Pod中。主要流程如下:

如何用K8S源碼分析Pod內(nèi)部構造

主要包含三個步驟:

EnsureImageExists - 拉取鏡像

CreateContainer - 通過CRI & dockershim創(chuàng)建容器實例

StartContainer - 運行實例

上述就是小編為大家分享的如何用K8S源碼分析Pod內(nèi)部構造了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI