kubelet發(fā)起創(chuàng)建命令到真正創(chuàng)建容器并啟動容器的過程
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設、樂東黎族網(wǎng)站維護、網(wǎng)站推廣。
流程內(nèi)容分析
kubelet通過gRPC調(diào)用dockershim發(fā)起創(chuàng)建容器,CRI即容器運行時接口(container runtime interface),目前dockershim的代碼內(nèi)嵌在kubele中,所以接受創(chuàng)建容器的就是kubelet進程。
dockershim把創(chuàng)建容器的命令轉(zhuǎn)換成docker daemon可以識別的命令,之后發(fā)送給docker daemon創(chuàng)建容器。
docker daemon在1.12版本之后就會把創(chuàng)建容器的命令分發(fā)給另一個進程: comtainerd。
containerd收到創(chuàng)建容器的命令后,創(chuàng)建另一個進程:containerd-shim進程,由該進程執(zhí)行具體的創(chuàng)建命令,containerd進程做為父進程存在。
創(chuàng)建容器的時候需要namespace隔離容器啟動和創(chuàng)建需要的資源,cgroup限制容器可以使用資源的大小等操作,這些事情該怎么做已經(jīng)有看公開的規(guī)范OCI(open container initivtive 開放容器標準),它的一個參考實現(xiàn)叫做runc。于是containerd--shim在這一步需要調(diào)用runc命令,來啟動容器。
runc啟動容器之后就直接退出,containerd-shim則會成為容器進程的父進程,收集容器進程的狀態(tài),上報給contanierd,并在容器種pid為1的進程退出后接管容器中國的子進程進行清理,確保不會出現(xiàn)僵尸進程。
這其中有兩個名詞概念容易混淆
CRI:容器運行時接口 container runtime interface
其主要的作用:
1、針對容器操作的接口,包括容器的創(chuàng)建、啟動和停止等
2、針對鏡像的操作,拉去、刪除鏡像等
3、針對podsandbox(容器沙箱環(huán)境)
OCI:開放容器標準 open container initiative
主要作用,制作容器
容器鏡像制作內(nèi)容,即imagespec
容器需要接收哪些指令,即runtimespec
文章標題:kubelet創(chuàng)建容器的流程分析
文章路徑:http://jinyejixie.com/article40/pshdho.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、App開發(fā)、標簽優(yōu)化、網(wǎng)站改版、企業(yè)建站、品牌網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)