精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

K8S 中的 CRI、OCI、CRI shim、containerd

云計算 云原生
使用 containerd 作為容器運行時之后,就不能再使用 docker ps? 或 docker inspect? 命令來獲取容器信息。由于不能列出容器,因此也不能獲取日志、停止容器,甚至不能通過 docker exec 在容器中執行命令。

好久沒發文了,最近這段時間都在學 K8S。不知道大家是不是和咸魚一樣,剛開始學 K8S 的時候,往往被 CRI、OCI、CRI shim、containerd 這些名稱搞得暈乎乎的,不清楚它們到底是干什么用的。所以今天,咸魚打算借這篇文章來解釋一下這些名稱,幫助大家理清它們的關系。

我們以 K8S 創建容器的過程為例,來引申出各個概念。

K8S 如何創建容器?

下面這張圖,就是經典的 K8S 創建容器的步驟,可以說是冗長復雜,至于為什么設計成這樣的架構,繼續往下讀。

圖片圖片

前半部分

CRI(Container Runtime Interface,容器運行時接口)

在 K8S 中,真正負責創建容器運行時的是 kubelet 這個組件。

當 kubelet 對容器運行時進行操作時,并不會直接調用 Docker 的 API,而是通過一組叫作 CRI 的 gRPC 接口來間接執行的。

其實對于 1.6 版本之前的 K8S 來講,kubelet 是直接與 Docker 的 API 交互的,為什么要單獨多出這一層抽象,其實是商戰的結果。

當時,Docker 風靡全球,許多公司都希望能在這一領域分一杯羹,紛紛推出了自家的容器運行時。其中最著名的要屬 CoreOS 公司的 rkt 項目。雖然 Docker 是 K8S 最依賴的容器運行時,但憑借與 Google 的特殊關系,CoreOS 公司在 2016 年成功地將對 rkt 容器的支持寫進了 kubelet 的主代碼里。

這下把專門維護 kubelet 的小組 sig-node 坑慘了。因為在這種情況下,kubelet 的任何重要功能更新都必須同時考慮 Docker 和 rkt 這兩種容器運行時的處理場景,并分別更新 Docker 和 rkt 的代碼。

更麻煩的是,由于 rkt 比較小眾,每次修改 rkt 代碼都必須依賴 CoreOS 公司的員工。這不僅降低了開發效率,還給項目的穩定性帶來了極大的隱患。

sig-node 一看這可不行,今天出個 rkt,明天出個 xxx,這下我們組也不用干活了,每天使勁折騰兼容性得了。所以把 kubelet 對容器運行時的操作統一抽象成了一個 gRPC 接口,然后告訴大家,你們想做容器運行時可以啊,我熱烈歡迎,但是前提是必須用我這個接口。

這一層統一的容器操作接口,就是 CRI ,這樣 kubelet 就只需要跟這個接口打交道就可以了。而作為具體的容器項目,比如 Docker、 rkt,它們就只需要自己提供一個該接口的實現,然后對 kubelet 暴露出 gRPC 服務即可。

下面這幅圖展示了 CRI 里主要的接口:

圖片圖片

可以簡單把 CRI 分為兩組:

  1. 第一組,是 RuntimeService。它提供的接口,主要是跟容器相關的操作。比如,創建和啟動容器、刪除容器、執行 exec 命令等等。
  2. 而第二組,則是 ImageService。它提供的接口,主要是容器鏡像相關的操作,比如拉取鏡像、刪除鏡像等等。

CRI shim

但是說到底 CRI 只是 K8S 推出的一個標準而已,當時的 K8S 還沒有達到如今這般武林盟主的統治地位,各家公司的容器項目也不能說我只跟 K8S 綁死,只適配 CRI 接口。所以, shim (墊片)就誕生了。

一個 shim 的工作就是就是作為適配器將各種容器運行時本身的接口適配到 K8S 的 CRI 接口上,以便用來響應 kubelet 發起的 CRI 請求。

每一個容器運行時都可以自己實現一個 CRI shim,用來把 CRI 請求 “翻譯”成自家容器運行時能夠聽懂的請求。

圖片圖片

如果你用 Docekr 作為容器運行時,那你的 CRI shim 就是 dockershim,因為當時 Docker 的江湖地位很高,kubelet 是直接集成了 dockershim 的,所以 K8S 創建容器的前半部分如下圖紅框所示:

圖片圖片

后半部分

當 dockershim 收到 CRI 請求之后,它會把里面的內容拿出來,然后組裝成 Docker API 請求發送給 Docker daemon。

請求到了 Docker daemon 之后就是 Docker 創建容器的流程了。

圖片圖片

從 Docker 1.11 版本開始,Docker 容器就不再是通過簡單的 Docker Daemon 來啟動了,而是通過一個守護進程 containerd 來完成的,因此 Docker Daemon 仍然不能幫我們創建容器,而是要請求 containerd 創建一個容器。

圖片圖片

containerd  收到請求之后也并不會直接去操作容器,而是創建一個叫 containerd-shim 的進程來處理,這是因為容器需要一個父進程來做狀態收集、維持 stdin 等 fd 打開等工作的。

假如這個父進程就是 containerd,如果 containerd 掛掉的話,整個宿主機上所有的容器都得退出了,而引入 containerd-shim 就可以避免這種問題。

我在這篇文章《兩個關鍵詞帶你了解容器技術的實現》里提到過,容器其實是宿主機上的一個進程,只不過通過 Linux 內核的 namespace 和 cgroups 機制,以及掛載 root 文件系統等操作來實現隔離和資源限制。

對于 namespaces 和 cgroups 的配置,以及掛載 root 文件系統等操作這塊內容已經有了標準的規范,那就是 OCI (Open Container Initiative,開放容器標準)。

OCI 標準其實就是一個文檔,主要規定了容器鏡像的結構、以及容器需要接收哪些操作指令:

  1. 容器鏡像要長啥樣,即 ImageSpec。里面的大致規定就是你這個東西需要是一個壓縮了的文件夾,文件夾里以 xxx 結構放 xxx 文件;
  2. 容器要需要能接收哪些指令,這些指令的行為是什么,即 RuntimeSpec。這里面的大致內容就是“容器”要能夠執行 create,start,stop,delete這些命令。

OCI 有一個參考實現,那就是 runc(Docker 被逼無耐將 libcontainer 捐獻出來然后改名為 runc )。既然是標準肯定就有其他 OCI 實現,比如 Kata、gVisor 這些容器運行時都是符合 OCI 標準的。

所以實際上  containerd-shim  通過調用 runc 來創建容器,runc 啟動完容器后本身會直接退出,containerd-shim 則會成為容器進程的父進程, 負責收集容器進程的狀態, 上報給 containerd, 并在容器中 pid 為 1 的進程退出后接管容器中的子進程進行清理, 確保不會出現僵尸進程。

另一個容器運行時:containerd

從上面的內容我們可以看到,真正容器相關的操作其實在 containerd 那一塊,至于前面的 docker shim 和 docker daemon 的操作不但復雜,而且對 K8S 來講大部分功能都是用不上的。

所以從 K8S 1.20 版本開始,K8S 宣布棄用 Docker,推薦使用 containerd 作為容器運行時。

至于為什么要用 containerd 作為容器運行時,也有商業競爭的原因。當時 docker 公司為了跟 K8S 競爭,搞了個 Docker Swarm,并且把架構進行了切分:把容器操作都移動到一個單獨的 containerd 進程中去,讓 Docker Daemon 專門負責上層的封裝編排。

可惜在 K8S 面前 swarm 就是弟弟,根本打不過,于是 Docker 公司只能后退一步,將 containerd項目捐獻給 CNCF 基金會,而 K8S 也見好就收,既然 Docker 已先退了一步,那就干脆優先支持原生Docker 衍生的容器運行時:containerd 。

圖片圖片

使用 containerd 作為容器運行時之后,就不能再使用 docker ps 或 docker inspect 命令來獲取容器信息。由于不能列出容器,因此也不能獲取日志、停止容器,甚至不能通過 docker exec 在容器中執行命令。

當然我們仍然可以下載鏡像,或者用 docker build 命令構建鏡像,但用 Docker 構建、下載的鏡像,對于容器運行時和 K8S,均不可見。

而且為了適配 CRI 標準,專門起了一個單獨的進程:CRI-containerd,這是因為還沒有捐給 K8S 的時候 containerd 會去適配其他的項目(Docker Swarm)

到了 containerd 1.1 版本,K8S 去掉了 CRI-Contained 這個 shim,直接把適配邏輯作為插件的方式集成到了 containerd 主進程中,現在這樣的調用就更加簡潔了。

圖片圖片

除此之外,K8S 社區也做了一個專門用于 K8S 的運行時 CRI-O,它直接兼容 CRI 和 OCI 規范。上圖中的 conmon 對于 containerd-shim

參考文章:

  • 45 | 幕后英雄:SIG-Node與CRI-深入剖析 Kubernetes-極客時間 (geekbang.org):https://time.geekbang.org/column/article/71056
  • K8S Runtime CRI OCI contained dockershim 理解_cri contained-CSDN博客:https://blog.csdn.net/u011563903/article/details/90743853
  • https://www.qikqiak.com/post/containerd-usage/
責任編輯:武曉燕 來源: 咸魚運維雜談
相關推薦

2023-01-10 13:48:50

ContainerdCRI源碼

2021-11-05 08:07:57

kubeletKubernetesContainerd

2020-10-16 18:30:41

K8SDockerCRI-O

2023-09-07 07:17:01

KubernetesCRI標準

2021-12-23 07:58:06

Kubelet容器運行

2022-02-07 08:42:28

k8sdocker命令

2023-08-29 08:20:35

Kubernete跨云容器

2022-04-22 13:32:01

K8s容器引擎架構

2023-11-06 07:16:22

WasmK8s模塊

2021-10-22 00:09:16

Kubernetes容器接口

2021-03-24 06:26:00

kubeadmK8Scontainerd

2020-07-17 08:40:47

K8SServicePOD

2023-09-06 08:12:04

k8s云原生

2025-11-12 11:52:20

2022-06-01 09:38:36

KubernetesPod容器

2023-09-15 07:34:15

AIOps云原生項目

2024-01-26 14:35:03

鑒權K8sNode

2025-03-03 08:05:14

2023-08-03 08:36:30

Service服務架構

2023-08-04 08:19:02

點贊
收藏

51CTO技術棧公眾號

超碰人人干人人| 国产盗摄视频在线观看| 亚洲日本视频在线观看| 国产欧美日韩精品一区二区三区| 色婷婷久久久综合中文字幕| 日韩中文一区| 精品国自产拍在线观看| 亚洲经典在线| 亚洲图片在区色| caoporm在线视频| 爱啪视频在线观看视频免费| 久久精品视频免费| 91九色国产视频| 欧美特黄aaaaaa| 成人激情开心网| 日韩一区二区精品葵司在线 | 婷婷五月综合久久中文字幕| 日韩av在线发布| 久久人人爽亚洲精品天堂| 美女扒开腿免费视频| 国模一区二区| 亚洲国产综合色| 亚洲视频在线观看日本a| 粉嫩小泬无遮挡久久久久久| 麻豆高清免费国产一区| 性色av一区二区咪爱| 国产一区在线观看免费| 视频福利一区| 欧美成人三级在线| 国内外成人免费在线视频| 蜜桃视频在线观看播放| 亚洲精品美国一| 在线观看日韩羞羞视频| 久久久pmvav| 从欧美一区二区三区| 国产欧美在线视频| 日韩精品成人免费观看视频| 国产精品videosex极品| 色黄久久久久久| 一色道久久88加勒比一| 国产香蕉精品| 日韩精品一区二区三区视频播放 | 精品无码黑人又粗又大又长| 国产精品久久观看| 在线观看久久久久久| 成人免费毛片糖心| 丝袜久久网站| 亚洲美女福利视频网站| 国产一级伦理片| 超碰成人免费| 精品成人一区二区| 日韩高清一二三区| 日韩成人视屏| 日韩欧美aaaaaa| 国产毛片久久久久久| 四虎视频在线精品免费网址| 欧美午夜精品一区二区蜜桃| 99免费视频观看| 电影在线观看一区| 精品久久久一区二区| 男的插女的下面视频| 久久五月精品中文字幕| 亚洲制服欧美中文字幕中文字幕| 99亚洲国产精品| 成人短视频在线观看| 中文字幕亚洲区| 在线观看亚洲视频啊啊啊啊| 18视频在线观看| 亚洲一区二区在线观看视频 | 中文国语毛片高清视频| 91精品99| 久久久久日韩精品久久久男男| 麻豆视频在线观看| 亚洲国产第一| 亚洲精品理论片| 欧美一级片在线视频| 中国av一区| 日韩精品一级二级| 91av在线播放视频| 啦啦啦免费高清视频在线观看| 亚洲免费高清| 日本在线精品视频| 中文天堂在线资源| 国产乱码一区二区三区| 国产精品一区二区不卡视频| 天天干在线观看| 国产亚洲欧美日韩在线一区| 性欧美精品一区二区三区在线播放 | 日本黄色www| 国产成人精品亚洲线观看| 亚洲精品v欧美精品v日韩精品| 亚洲午夜久久久久久久久红桃| 国产调教一区二区三区| 日韩在线观看免费高清完整版| 男的操女的网站| 夜夜嗨av一区二区三区网站四季av| 日本精品一区二区三区在线| 91福利免费视频| 成人午夜av在线| 日本午夜一区二区三区| 国产福利在线播放麻豆| 天天影视色香欲综合网老头| 日韩一级片播放| 午夜视频一区二区在线观看| 亚洲美女www午夜| 全程偷拍露脸中年夫妇| 裸体一区二区| 亚洲自拍偷拍第一页| 香港一级纯黄大片| 成人免费一区二区三区视频| 欧美老熟妇喷水| 激情视频亚洲| 国产亚洲成精品久久| 久久久久久久久久99| 日本中文字幕一区二区有限公司| 91观看网站| 国产玉足榨精视频在线观看| 亚洲午夜影视影院在线观看| www.日本一区| 亚州国产精品| 欧美精品videofree1080p| 最近中文字幕av| 9人人澡人人爽人人精品| 在线精品亚洲一区二区| 北岛玲heyzo一区二区| 日韩精品一区二区三区蜜臀 | 亚洲激情自拍视频| 亚洲 欧美 日韩系列| 福利在线一区| 久久综合电影一区| 瑟瑟视频在线免费观看| 91亚洲大成网污www| 青青在线免费视频| 日韩护士脚交太爽了| 亚洲午夜色婷婷在线| 日韩欧美不卡视频| 成人午夜av电影| 97超碰在线视| 秋霞午夜一区二区三区视频| 日韩有码在线视频| 中文字幕一区二区人妻痴汉电车 | 日韩精品一区二| 国产一区二区三区视频播放| 日韩有码一区二区三区| 久久久久久亚洲精品不卡4k岛国| 国产探花视频在线观看| 欧美一级艳片视频免费观看| 国产调教在线观看| 日韩av电影天堂| 水蜜桃一区二区三区| 欧美精品日日操| 亚洲性生活视频在线观看| 少妇高潮av久久久久久| 久久先锋影音av| 国产第一页视频| 精品国产aⅴ| 国产精品美腿一区在线看| 都市激情一区| 欧美日韩精品一区二区三区| 99热99这里只有精品| 国产原创一区二区| 五月天在线免费视频| 在线观看视频一区二区三区| 久久久久久久久久国产精品| 三级在线观看网站| 欧美网站在线观看| 色无极影院亚洲| 男女精品网站| 日韩一区二区三区资源| 精品176极品一区| 久久精品成人欧美大片| www.亚洲黄色| 午夜精品在线看| 精品少妇一区二区三区免费观| 丝袜美腿成人在线| 在线看成人av电影| 91成人福利| 欧美自拍视频在线观看| 91这里只有精品| 日韩欧美在线123| 国产成人在线播放视频| 久久综合九色综合97婷婷女人 | 二区视频在线观看| 国产午夜精品久久| 国产永久免费网站| 国内精品亚洲| 欧美日韩一区二区三区在线观看免| 成人精品电影在线| 另类美女黄大片| 色播色播色播色播色播在线| 欧美日韩国产精选| 国产精品变态另类虐交| 国产亚洲制服色| 午夜激情视频网| 久久av最新网址| 国产又粗又爽又黄的视频 | 午夜精品一区二区在线观看| 免费一级欧美在线大片| 2025国产精品视频| 久久五月精品| 亚洲免费成人av电影| 国产精品久久久午夜夜伦鲁鲁| 亚洲sss视频在线视频| 你懂得视频在线观看| 成人一区二区三区| 自拍偷拍一区二区三区四区| 一二三区精品| 亚洲五码在线观看视频| 精品国产一区二区三区小蝌蚪| 成人h视频在线观看| 外国电影一区二区| 韩国福利视频一区| 久久久久久久久免费视频| 精品视频在线观看日韩| av加勒比在线| 欧美性猛片xxxx免费看久爱| 日韩精品久久久久久久| 亚洲视频精选在线| 亚洲ⅴ国产v天堂a无码二区| 99国产精品久久久久久久久久| 日韩 国产 一区| 日韩高清在线一区| 久久视频这里有精品| 亚洲一区在线| 亚洲欧美丝袜| 国产一区二区电影在线观看| 国产欧美亚洲日本| 精品一区二区三区中文字幕在线| 国产精品99久久久久久久久久久久| 97天天综合网| 九九精品在线观看| 国产精品一区二区三区视频网站| 一区二区三区精品99久久| 瑟瑟在线观看| 亚洲精品98久久久久久中文字幕| av在线资源观看| 337p亚洲精品色噜噜狠狠| 亚洲熟女乱色一区二区三区久久久| 色婷婷综合久久久中文一区二区| 国产一级大片在线观看| 亚洲激情男女视频| 国产激情无码一区二区三区| 国产精品每日更新在线播放网址| 久久亚洲无码视频| 久久久久久久久岛国免费| 亚洲av成人无码一二三在线观看| 国产福利91精品| 先锋资源在线视频| 国产高清一区日本| 亚洲AV成人精品| 国产成人精品一区二 | 久久亚区不卡日本| 97超碰在线免费观看| 久久新电视剧免费观看| 色婷婷av777| 国产日韩v精品一区二区| 久久久久久久久久久久久久久| 久久久一区二区| 欧美人妻一区二区三区| 国产精品拍天天在线| 亚洲女人久久久| 亚洲乱码日产精品bd| 成年人av电影| 亚洲h动漫在线| 综合网在线观看| 在线日韩国产精品| 91精品国产乱码久久久久| 欧美日韩不卡在线| 国产伦精品一区二区三区视频痴汉| 欧美一区二区三区思思人| 亚洲精品无码久久久| 日韩精品视频免费专区在线播放| 免费在线超碰| 精品国偷自产在线视频| 国产蜜臀在线| 国产va免费精品高清在线观看 | 欧美日韩亚洲丝袜制服| 国产精品国产三级国产普通话对白 | 亚洲人午夜精品天堂一二香蕉| 污软件在线观看| 亚洲成av人片在www色猫咪| 亚洲va在线观看| 欧美精品一区二区久久久| 久久久久成人网站| 亚洲高清一区二区三区| 亚洲免费激情视频| 欧日韩精品视频| 国产精品久久久国产盗摄| 不卡的av在线播放| 美女黄色一级视频| 99国产精品久久| 神马久久久久久久久久久| 亚洲同性gay激情无套| 久久精品影视伊人网| 日本中文字幕在线播放| 久久色精品视频| 欧美激情护士| 日韩美女在线播放| 男人天堂一区二区| 亚洲欧美制服综合另类| 第一页在线观看| 久热精品视频在线观看一区| 忘忧草在线日韩www影院| 国产一区红桃视频| 任你躁在线精品免费| 影音先锋亚洲视频| 国产美女诱惑一区二区| 香蕉视频xxxx| 国产精品50p| 伊人久久大香线蕉av不卡| 日韩欧美精品在线不卡| 欧美日韩调教| 欧美日韩怡红院| www.成人网.com| 国产一区二区播放| 色呦呦网站一区| 丰满人妻一区二区三区免费视频 | 久久99精品久久久水蜜桃| 国产一区99| 欧美日韩精品在线一区二区 | 亚洲精品色图| 1314成人网| 羞羞色午夜精品一区二区三区| 国产成人精品电影久久久| 欧美黄页免费| 精品高清视频| 中文字幕乱码亚洲无线精品一区 | 欧美人与禽猛交乱配| 国产精品综合不卡av| 欧美日韩播放| 黄色免费观看视频网站| 国产成人1区| 日韩女优人人人人射在线视频| 亚洲人成777| 欧洲精品久久| 亚洲在线免费| 人妻熟女aⅴ一区二区三区汇编| 亚洲一区二区精品3399| 国产乱淫a∨片免费视频| 伊人男人综合视频网| 成人线上视频| 欧美极品视频一区二区三区| 播放一区二区| 视频在线一区二区| 一区二区三区短视频| 国产精品青青草| 国产综合精品一区| 香蕉网在线视频| 亚洲精品少妇30p| 国产成人av免费看| 欧美精品手机在线| 精品一区二区三区视频在线播放| 26uuu成人| 国产一区二区三区免费看| 国产又大又长又粗又黄| 日韩黄色一级片| 国产一二三四五区| 欧美最猛性xxxxx直播| 触手亚洲一区二区三区| 国产精品美女午夜av| 性欧美69xoxoxoxo| 国内自拍偷拍视频| 亚洲va欧美va国产va天堂影院| 亚洲日本国产精品| 2019中文字幕在线观看| 亚洲黄色在线免费观看| 这里只有精品在线播放| 欧美亚洲二区| 亚洲国产一二三精品无码| 成人av资源在线| 成人免费毛片视频| 中文字幕欧美日韩在线| 91成人短视频在线观看| 国产91在线亚洲| 97国产一区二区| 中文字幕人妻精品一区| 欧美成人合集magnet| 91成人短视频| 免费在线观看毛片网站| 国产精品国产三级国产aⅴ无密码| 99草在线视频| 欧美亚洲视频一区二区| 日韩欧美网址| 中文字幕99页| 一本一道久久a久久精品| 97超碰国产一区二区三区| 肥熟一91porny丨九色丨| 亚洲欧美日韩精品一区二区| 欧美成人久久久免费播放| 精品日韩欧美一区二区| 欧美电影免费看| xxxxxx在线观看| 久久精品亚洲麻豆av一区二区| 999精品国产| 国产成人精品在线观看| 欧美日韩亚洲一区三区| 亚洲第一综合网| 精品国产网站在线观看| 日本美女久久| 欧美一级欧美一级|