在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Docker、Containerd和Kubernetes之間的關系

阿銘linux ? 來源:阿銘linux ? 2023-04-08 10:44 ? 次閱讀

1)Kubernetes與Docker

Docker是最早出現的那批容器引擎工具,所以它最早占領了市場。Kubernetes主要用來做容器編排,用來管理容器集群,是一個平臺。

Kubernetes要想去控制容器,就得借助容器引擎,在早期的Kubernetes版本里,除了選擇Docker作為容器引擎外,沒更好的選擇。所以早期的Kubernetes和Docker深深地綁定了在一起。由于Docker可以在沒有Kubernetes的情況下使用,而Kubernetes必須要有容器運行時(Docker引擎)才能進行編排。

這對于Kubernetes來說,絕對是一個非常大的隱患,這相當于是將自己命根子交給了別人,如果哪天Docker翻臉了,Kubernetes必然損失巨大。

好在,Kubernetes發展比Docker更加迅猛,勢頭遠遠蓋過了Docker,Kubernetes終于有資格自己決定做一些事情了。

2)CRI

為了解決隱患,Kubernetes在1.5版本里,引入了一個新的接口標準:CRI(Container Runtime Interface),它主要用來規定如何調用容器運行時來管理容器和鏡像,但這個接口標準和之前的Docker調用標準有不少差異,所以兩者完全不兼容。這意味著,Kubernetes可以撇開Docker,使用其它容器運行時(如rkt)。

由于Docker用戶非常龐大,Kubernetes也意識到了直接不兼容Docker會有許多不確定風險,當時,Kubernetes用了一個臨時方案,在Kubernetes和Docker中間開發了一個Dockershim,主要用來將Docker的接口標準轉換成CRI標準。

3)Containerd

Docker意識到Kubernetes的改變,為了迎合Kubernetes,將Docker Engine拆分成多個模塊,其中Docker Daemon部分也就是說Containerd捐獻給了CNCF。

所以,Containerd實際上是Docker引擎拆出來的一個模塊。

Containerd 作為 CNCF 的托管項目,自然是要符合 CRI 標準的。但當時的Docker 出于自己諸多原因的考慮,它只是在 Docker Engine 里調用了 containerd,外部的接口仍然保持不變,也就是說還不與 CRI 兼容。

在當時的Kubernetes版本里,有兩種方法調用容器:

第一種是用 CRI 調用 dockershim,然后 dockershim 調用 Docker,Docker 再走 containerd 去操作容器。

第二種是用 CRI 直接調用 containerd 去操作容器。

6de4b732-d5a9-11ed-bfe3-dac502259ad0.png

很明顯,第一種方法多了兩層調用,性能明顯不如第二種方法。所以Kubernetes決定將dockershim移除,所以也就不能直接使用Docker了,在外界看來就像是Kubernetes棄用了Docker。

4)棄用dockershim

2020年Kubernetes發布1.20版本時,對外聲明將在后續版本里(實際上是在22年的1.24版本里)移除dockershim,也就是取消對Docker的支持。當時,眾多吃瓜群眾理解錯了意思,認為成了Kubernetes棄用Docker。它實際上只是“棄用了 dockershim”這個小組件,也就是說把 dockershim 移出了 kubelet,并不是“棄用了 Docker”這個軟件產品。

這個舉措對Kubernetes和 Docker 來說都不會有什么太大的影響,因為他們兩個都早已經把下層都改成了開源的 containerd,原來的 Docker 鏡像和容器仍然會正常運行,唯一的變化就是 Kubernetes繞過了 Docker,直接調用 Docker 內部的 containerd 而已。

5)Kubernetes移除dockershim后對Docker的影響

雖然現在 Kubernetes 不再默認綁定 Docker,但 Docker 還是能夠以其他的形式與 Kubernetes 共存的。

首先,因為容器鏡像格式已經被標準化了(OCI 規范,Open Container Initiative),Docker 鏡像仍然可以在 Kubernetes 里正常使用,原來的開發測試、CI/CD 流程都不需要改動,我們仍然可以拉取 Docker Hub 上的鏡像,或者編寫 Dockerfile 來打包應用。

其次,Docker 是一個完整的軟件產品線,不止是 containerd,它還包括了鏡像構建、分發、測試等許多服務,甚至在 Docker Desktop 里還內置了 Kubernetes。單就容器開發的便利性來講,Docker 還是暫時難以被替代的,廣大云原生開發者可以在這個熟悉的環境里繼續工作,利用 Docker 來開發運行在 Kubernetes 里的應用。

再次,雖然 Kubernetes 已經不再包含 dockershim,但 Docker 公司卻把這部分代碼接管了過來,另建了一個叫 cri-dockerd的項目,作用也是一樣的,把 Docker Engine 適配成 CRI 接口,這樣 kubelet 就又可以通過它來操作 Docker 了,就仿佛是一切從未發生過。

綜合來看,Docker 雖然在容器編排戰爭里落敗,被 Kubernetes 排擠到了角落,但它仍然具有強韌的生命力,多年來積累的眾多忠實用戶和數量龐大的應用鏡像是它的最大資本和后盾,足以支持它在另一條不與 Kubernetes 正面交鋒的道路上走下去。而對于我們這些初學者來說,Docker 方便易用,具有完善的工具鏈和友好的交互界面,市面上很難找到能夠與它媲美的軟件了,應該說是入門學習容器技術和云原生的“不二之選”。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 容器
    +關注

    關注

    0

    文章

    507

    瀏覽量

    22365
  • 鏡像
    +關注

    關注

    0

    文章

    178

    瀏覽量

    11118
  • Docker
    +關注

    關注

    0

    文章

    510

    瀏覽量

    12698
  • kubernetes
    +關注

    關注

    0

    文章

    239

    瀏覽量

    8970

原文標題:Docker、Containerd和Kubernetes之間的關系

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Kubernetes架構和核心組件組成 Kubernetes節點“容器運行時”技術分析

    的服務,而這些都是受Master的控制。 每次個節點上當然都要運行DockerDocker來負責所有具體的映像下載和容器運行。 Kubernetes主要由以下幾個核心組件組成: 1)etcd保存了整個
    的頭像 發表于 09-25 15:53 ?3741次閱讀
    <b class='flag-5'>Kubernetes</b>架構和核心組件組成 <b class='flag-5'>Kubernetes</b>節點“容器運行時”技術分析

    Containerd常見命令操作

    作為接替 Docker 運行時的 Containerd 在早在 Kubernetes1.7 時就能直接與 Kubelet 集成使用,只是大部分時候我們因熟悉 Docker,在部署集群時
    的頭像 發表于 08-30 10:08 ?5498次閱讀

    Kubernetes之路 2 - 利用LXCFS提升容器資源可見性

    摘要: 這是本系列的第2篇內容,將介紹在DockerKubernetes環境中解決遺留應用無法識別容器資源限制的問題。本系列文章記錄了企業客戶在應用Kubernetes時的一些常見問題第一篇
    發表于 04-17 14:05

    Kubernetes和Mesos集成的優勢與原理

    Kubernetes是一個docker集群管理工具,主要包含資源管理,部署運行,服務發現,擴容縮容等功能,幫助用戶把所有的應用都部署在Docker Container里邊,Kubernetes
    發表于 10-12 17:46 ?0次下載
    <b class='flag-5'>Kubernetes</b>和Mesos集成的優勢與原理

    軟件容器平臺Docker受實體清單限制使用 Docker開源項目應不受影響

    有網友指出此次 Docker 更新的服務協議只是針對 Docker Inc. 相關網站上提供的服務,而大家常提的 Docker(包含 engine、runc 和 containerd
    的頭像 發表于 08-19 09:52 ?2899次閱讀

    解析DockerKubernetes、Openshift的發展歷史及架構

    Kubernetes前身是谷歌大規模集群管理系統Brog,它基于容器技術,實現資源管理的自動化,以及跨數據中心資源利用的最大化。Kubernetes于2015年正式對外發布,經過4年多的發展,為容器編排提供強大的解決方案,成為云原生系統的重要支撐。
    的頭像 發表于 09-08 10:15 ?4489次閱讀

    簡單說明k8s和Docker之間關系

    這篇文章主要介紹了k8s和Docker關系簡單說明,本文利用圖文講解的很透徹,有需要的同學可以研究下 最近項目用到kubernetes(以下簡稱k8s,k和s之間有8個字母)。雖然之前
    的頭像 發表于 06-24 15:48 ?3655次閱讀

    Kubernetes是什么,一文了解Kubernetes

    香了。 這時候就需要我們的主角 Kubernetes 上場了,先來了解一下 Kubernetes 的基本概念,后面再介紹實踐,由淺入深步步為營。 關于 Kubernetes 的基本概念我們將會圍繞如下七點展開: 一、
    發表于 12-21 13:40 ?1903次閱讀
    <b class='flag-5'>Kubernetes</b>是什么,一文了解<b class='flag-5'>Kubernetes</b>

    docker-book DockerKubernetes開源書

    gitee-docker-book.zip
    發表于 04-19 14:22 ?0次下載
    <b class='flag-5'>docker</b>-book <b class='flag-5'>Docker</b>與<b class='flag-5'>Kubernetes</b>開源書

    Containerd控制runC的守護進程

    ./oschina_soft/containerd.zip
    發表于 05-11 10:05 ?0次下載
    <b class='flag-5'>Containerd</b>控制runC的守護進程

    一文詳解Kubernetes架構原理

    打開這篇文章的同學,想必對 Docker 都不會陌生。Docker 是一種虛擬容器技術,它上手比較簡單,只需在宿主機上起一個 Docker Engine,然后就能愉快的玩耍了,如:拉鏡像、起容器、掛載數據、映射端口等等。相對
    的頭像 發表于 07-14 09:50 ?1244次閱讀

    什么是Kubernetes容器運行時CRI

    起初,Docker是事實上的容器技術標準,Kubernetes v1.5之前的代碼中直接調用Docker API,實現容器運行時的相關操作。
    的頭像 發表于 02-20 16:22 ?1845次閱讀
    什么是<b class='flag-5'>Kubernetes</b>容器運行時CRI

    Containerd基礎用法

    Docker 1.11 版本開始,Docker 容器運行就不是簡單通過 Docker Daemon 來啟動了,而是通過集成containerd、runc等多個組件來完成的。 雖然
    的頭像 發表于 04-11 10:50 ?978次閱讀

    docker容器與容器之間通信

    Docker是一種輕量級容器化技術,能夠將應用程序及其依賴項封裝在一個獨立、可移植的容器中。而容器化的應用程序通常是以分布式方式設計的,因此實現容器與容器之間的通信至關重要。 本文將詳細介紹
    的頭像 發表于 11-23 09:36 ?1911次閱讀

    如何啟動本機docker服務

    Docker: sudo apt- get update sudo apt- get install docker-ce docker-ce-cli containerd.io 對于
    的頭像 發表于 11-23 09:43 ?2644次閱讀
    主站蜘蛛池模板: 亚洲福利一区二区 | 亚洲香蕉国产高清在线播放 | 国产又爽又黄又粗又大 | 久久六月丁香婷婷婷 | 亚洲第一区二区快射影院 | 欧美一区二区视频 | 四虎最新免费观看网址 | 奇米久草 | 久久五月女厕所一区二区 | 国产情侣草莓视频在线 | 欧美性一区二区三区 | 精品无码三级在线观看视频 | 亚洲精品久 | 久久免费精品国产72精品剧情 | 国产美女久久久久 | 操操操综合网 | 天天干天天玩 | 天堂电影在线 | 国产情侣草莓视频在线 | 久青草免费视频手机在线观看 | 成人午夜性a一级毛片美女 成人午夜性视频欧美成人 成人小视频在线 | 久久人人青草97香蕉 | 亚洲色图狠狠干 | 福利精品| 天堂最新版免费观看 | 国产片91人成在线观看 | 99综合色| 亚洲专区一路线二 | 美女隐私黄www视频 美女用手扒开尿口给男生桶爽 | 男女在线视频 | 日本在线网站 | 人人舔人人爱 | 人人爽天天爽夜夜爽曰 | а中文在线天堂 | 欧美日韩免费大片 | 天天操天天摸天天爽 | 欧美伊久线香蕉线新在线 | 456成人网 | 一二三区乱码一区二区三区码 | 色综久久| 亚洲国产美女精品久久 |