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

為什么 Kubernetes 要替換 Docker

云計算
為什么這么設計(Why’s THE Design)是一系列關于計算機領域中程序設計決策的文章,我們在這個系列的每一篇文章中都會提出一個具體的問題并從不同的角度討論這種設計的優缺點、對具體實現造成的影響。

[[387817]]

為什么這么設計(Why’s THE Design)是一系列關于計算機領域中程序設計決策的文章,我們在這個系列的每一篇文章中都會提出一個具體的問題并從不同的角度討論這種設計的優缺點、對具體實現造成的影響。

Kubernetes 是今天容器編排領域的事實標準,而 Docker 從誕生之日到今天都在容器中扮演著舉足輕重的地位,也都是 Kubernetes 中的默認容器引擎。然而在 2020 年 12 月,Kubernetes 社區決定著手移除倉庫中 Dockershim 相關代碼[^1],這對于 Kubernetes 和 Docker 兩個社區來說都意義重大。

kubelet-and-containers

圖 1 - Dockershim

相信大多數的開發者都聽說過 Kubernetes 和 Docker,也知道我們可以使用 Kubernetes 管理 Docker 容器,但是可能沒有聽說過 Dockershim,即 Docker 墊片。如上圖所示,Kubernetes 中的節點代理 Kubelet 為了訪問 Docker 提供的服務需要先經過社區維護的 Dockershim,Dockershim 會將請求轉發給管理容器的 Docker 服務。

其實從上面的架構圖中,我們就能猜測出 Kubernetes 社區從代碼倉庫移除 Dockershim 的原因:

  • Kubernetes 引入容器運行時接口(Container Runtime Interface、CRI)隔離不同容器運行時的實現機制,容器編排系統不應該依賴于某個具體的運行時實現;
  • Docker 沒有支持也不打算支持 Kubernetes 的 CRI 接口,需要 Kubernetes 社區在倉庫中維護 Dockershim;

可擴展性

Kubernetes 通過引入新的容器運行時接口將容器管理與具體的運行時解耦,不再依賴于某個具體的運行時實現。很多開源項目在早期為了降低用戶的使用成本,都會提供開箱即用的體驗,而隨著用戶群體的擴大,為了滿足更多定制化的需求、提供更強的可擴展性,會引入更多的接口。Kubernetes 通過下面的一系列接口為不同模塊提供了擴展性:

kubernetes-extensions

圖 2 - Kubernetes 接口和可擴展性

Kubernetes 在較早期的版本中就引入了 CRD、CNI、CRI 和 CSI 等接口,只有用于擴展調度器的調度框架是 Kubernetes 中比較新的特性。我們在這里就不展開分析其他的接口和擴展了,簡單介紹一下容器運行時接口。

Kubernetes 早在 1.3 就在代碼倉庫中同時支持了 rkt 和 Docker 兩種運行時,但是這些代碼為 Kubelet 組件的維護帶來了很大的困難,不僅需要維護不同的運行時,接入新的運行時也很困難;容器運行時接口(Container Runtime Interface、CRI)是 Kubernetes 在 1.5 中引入的新接口,Kubelet 可以通過這個新接口使用各種各樣的容器運行時。其實 CRI 的發布就意味著 Kubernetes 一定會將 Dockershim 的代碼從倉庫中移除。

CRI 是一系列用于管理容器運行時和鏡像的 gRPC 接口,我們能在它的定義中找到 RuntimeService 和 ImageService 兩個服務[^2],它們的名字很好地解釋了各自的作用:

  1. service RuntimeService { 
  2.     rpc Version(VersionRequest) returns (VersionResponse) {} 
  3.  
  4.     rpc RunPodSandbox(RunPodSandboxRequest) returns (RunPodSandboxResponse) {} 
  5.     rpc StopPodSandbox(StopPodSandboxRequest) returns (StopPodSandboxResponse) {} 
  6.     rpc RemovePodSandbox(RemovePodSandboxRequest) returns (RemovePodSandboxResponse) {} 
  7.     rpc PodSandboxStatus(PodSandboxStatusRequest) returns (PodSandboxStatusResponse) {} 
  8.     rpc ListPodSandbox(ListPodSandboxRequest) returns (ListPodSandboxResponse) {} 
  9.  
  10.     rpc CreateContainer(CreateContainerRequest) returns (CreateContainerResponse) {} 
  11.     rpc StartContainer(StartContainerRequest) returns (StartContainerResponse) {} 
  12.     rpc StopContainer(StopContainerRequest) returns (StopContainerResponse) {} 
  13.     rpc RemoveContainer(RemoveContainerRequest) returns (RemoveContainerResponse) {} 
  14.     rpc ListContainers(ListContainersRequest) returns (ListContainersResponse) {} 
  15.     rpc ContainerStatus(ContainerStatusRequest) returns (ContainerStatusResponse) {} 
  16.     rpc UpdateContainerResources(UpdateContainerResourcesRequest) returns (UpdateContainerResourcesResponse) {} 
  17.     rpc ReopenContainerLog(ReopenContainerLogRequest) returns (ReopenContainerLogResponse) {} 
  18.  
  19.     ... 
  20.  
  21. service ImageService { 
  22.     rpc ListImages(ListImagesRequest) returns (ListImagesResponse) {} 
  23.     rpc ImageStatus(ImageStatusRequest) returns (ImageStatusResponse) {} 
  24.     rpc PullImage(PullImageRequest) returns (PullImageResponse) {} 
  25.     rpc RemoveImage(RemoveImageRequest) returns (RemoveImageResponse) {} 
  26.     rpc ImageFsInfo(ImageFsInfoRequest) returns (ImageFsInfoResponse) {} 

對 Kubernetes 稍有了解的人都能從上面的定義中找到一些熟悉的方法,它們都是容器運行時需要暴露給 Kubelet 的接口。Kubernetes 將 CRI 墊片實現成 gRPC 服務器與 Kubelet 中的客戶端通信,所有的請求都會被轉發給容器運行時處理。

cri-and-container-runtimes

圖 3 - Kubernetes 和 CRI

Kubernetes 中的聲明式接口非常常見,作為聲明式接口的擁躉,CRI 沒有使用聲明式的接口是一件聽起來『非常怪異』的事情[^3]。不過 Kubernetes 社區考慮過讓容器運行時重用 Pod 資源,這樣容器運行時可以實現不同的控制邏輯來管理容器,能夠極大地簡化 Kubelet 和容器運行時之間的接口,但是社區出于以下兩點考慮,最終沒有選擇聲明式的接口:

所有的運行時都需要重新實現相同的邏輯支持很多 Pod 級別的功能和機制;

Pod 的定義在 CRI 設計時演進地非??欤跏蓟萜鞯裙δ芏夹枰\行時的配合;

雖然社區最終為 CRI 選擇了命令式的接口,但是 Kubelet 仍然會保證 Pod 的狀態會不斷地向期望狀態遷移。

不兼容接口

與容器運行時相比,Docker 更像是一個復雜的開發者工具,它提供了從構建到運行的全套功能。開發者可以很快地上手 Docker 并在本地運行并管理一些 Docker 容器,然而在集群中運行的容器運行時往往不需要這么復雜的功能,Kubernetes 需要的只是 CRI 中定義的那些接口。

docker-and-cri

圖 4 - Docker & CRI

Docker 的官方文檔加起來可能有一本書的厚度,相信沒有任何開發者可以熟練運用 Docker 提供的全部功能。而作為開發者工具,雖然 Docker 中包含 CRI 需要的所有功能,但是都需要實現一層包裝以兼容 CRI。除此之外,社區提出的很多新功能都沒有辦法在 Dockershim 中實現,例如 cgroups v2 以及用戶命名空間。

Kubernetes 作為比較松散的開源社區,每個成員尤其是各個 SIG 的成員都只會在開源社區上花費有限的時間,而維護 Kubelet 的 sig-node 又尤其繁忙,很多新的功能都因為維護者沒有足夠的精力而被擱置,所以既然 Docker 社區看起來沒有打算支持 Kubernetes 的 CRI 接口,維護 Dockershim 又需要花費很多精力,那么我們就能理解為什么 Kubernetes 會移除 Dockershim 了。

總結

今天的 Kubernetes 已經是非常成熟的項目,它的關注點也逐漸從提供更完善的功能轉變到提供更好的擴展性,這樣才能滿足不同場景和不同公司定制化的業務需求。Kubernetes 在過去因為 Docker 的熱門而選擇 Docker,而在今天又因為高昂的維護成本而放棄 Docker,我們能夠從這個過程中體會到容器領域的發展和進步。

移除 Docker 的種子其實從 CRI 發布時就種下了,Dockershim 一直都是 Kubernetes 為了兼容 Docker 獲得市場采取的臨時決定,對于今天已經統治市場的 Kubernetes 來說,Docker 的支持顯得非常雞肋,移除代碼也就順理成章了。我們在這里重新回顧一下 Kubernetes 在倉庫中移除 Docker 支持的兩個原因:

  • Kubernetes 在早期版本中引入 CRI 擺脫依賴某個具體的容器運行時依賴,屏蔽底層的諸多實現細節,讓 Kubernetes 能夠更關注容器的編排;
  • Docker 本身不兼容 CRI 接口,而且官方并沒有實現 CRI 的打算,同時也不支持容器的一些新需求,所以 Dockershim 的維護成為了社區的想要擺脫負擔;

到最后,我們還是來看一些比較開放的相關問題,有興趣的讀者可以仔細思考一下下面的問題:

Kubernetes 中還有哪些模塊提供良好的擴展性?

除了文中提到的 CRI-O、Containerd,還有哪些支持 CRI 的容器運行時?

如果對文章中的內容有疑問或者想要了解更多軟件工程上一些設計決策背后的原因,可以在博客下面留言,作者會及時回復本文相關的疑問并選擇其中合適的主題作為后續的內容。

參考資料

  • Dockershim Deprecation FAQ https://kubernetes.io/blog/2020/12/02/dockershim-faq/
  • Don't Panic: Kubernetes and Docker https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/

[^1]: Removing dockershim from kubelet #1985 https://github.com/kubernetes/enhancements/pull/1985

[^3]: Introducing Container Runtime Interface (CRI) in Kubernetes https://kubernetes.io/blog/2016/12/container-runtime-interface-cri-in-kubernetes/

[^2]: Container Runtime Interface (CRI) – a plugin interface which enables kubelet to use a wide variety of container runtimes. https://github.com/kubernetes/cri-api/blob/master/pkg/apis/runtime/v1/api.proto

本文轉載自微信公眾號「真沒什么邏輯」,可以通過以下二維碼關注。轉載本文請聯系真沒什么邏輯公眾號。

 

責任編輯:武曉燕 來源: 真沒什么邏輯
相關推薦

2021-06-04 05:21:19

KubernetesDocker容器

2021-09-14 08:50:38

Kubernetes容器Docker

2019-08-05 14:23:43

DockerKubernetes容器

2018-04-10 13:40:14

Kubernetes容器服務器

2023-10-28 00:02:55

2020-06-19 14:55:11

Kubernetes容器技術

2015-08-06 10:14:15

造輪子facebook

2022-08-15 08:27:02

基站網絡

2013-03-12 14:30:09

Ubuntu操作系統

2020-06-16 14:13:50

Kubernetes容器Linux

2020-06-02 19:14:59

Kubernetes容器開發

2019-11-05 14:34:37

KubernetesLinux服務器

2018-03-13 09:34:36

Kubernetes容器系統

2024-10-17 16:41:57

KafkaZooKeeper

2021-02-11 13:30:56

Nodejs源碼c++

2019-01-14 07:28:56

大數據云計算互聯網

2019-03-19 08:59:13

物聯網IOT技術

2019-11-27 10:25:15

SaaS云端IT架構

2015-05-12 11:04:42

Java EE學習Java EE

2014-08-25 10:00:18

開源
點贊
收藏

51CTO技術棧公眾號

国内国产精品天干天干| 精品无人乱码一区二区三区的优势| 亚洲深爱激情| 日韩av中文在线观看| 国产亚洲欧美日韩精品| 911福利视频| 97蜜桃久久| 国产欧美一区二区三区在线看蜜臀| 成人h片在线播放免费网站| 国产亚洲欧美久久久久| 女厕嘘嘘一区二区在线播放 | 精品国产一二三| 国产美女三级视频| а天堂中文在线官网| 99久久精品免费看| 亚洲一区亚洲二区| 91porny九色| 国产一区二区三区四区老人| 国产视频自拍一区| 超碰在线人人爱| 国产伦理精品| 国产精品人成在线观看免费| 激情久久av| 国产精品自产拍| 老司机精品福利视频| 欧美激情视频在线| 日韩欧美国产成人精品免费| 欧美日韩一区二区三区四区不卡 | 亚洲欧洲另类国产综合| 久久影院理伦片| 亚洲经典一区二区| 国内欧美视频一区二区| 国产成人精品视| 天天操天天爽天天干| 影音先锋成人在线电影| 最新国产成人av网站网址麻豆| 日本少妇xxxx| 伊人www22综合色| 欧美日韩成人综合| 色哟哟精品视频| 日韩中文影院| 色综合久久综合网97色综合| www.av毛片| 午夜小视频在线观看| 中文字幕一区二区日韩精品绯色| 色综合视频二区偷拍在线| 色猫av在线| 99在线热播精品免费| 成人免费在线看片| 亚洲精品喷潮一区二区三区 | 成人国产在线视频| 日韩国产亚洲欧美| 日韩av在线播放中文字幕| 2019国产精品自在线拍国产不卡| 欧美黑人精品一区二区不卡| 91精品综合| 久久成人在线视频| www.毛片com| 午夜日韩电影| 美女福利精品视频| 妺妺窝人体色www在线下载| 影视亚洲一区二区三区| 欧美激情啊啊啊| 欧美一级高潮片| 国产日韩欧美| 国产成人亚洲综合91| 波多野结衣视频网址| 日本视频在线一区| 成人中心免费视频| 成人1区2区3区| 成人精品小蝌蚪| 久久伊人一区| av在线电影播放| 亚洲美女区一区| 免费看日本黄色| 欧美少妇网站| 欧美三区在线观看| a级大片免费看| 欧美变态网站| 中文字幕日韩精品在线| 日韩欧美123区| 亚洲欧洲综合| 国产精品高精视频免费| 97精品人妻一区二区三区在线 | 91精品国产综合久久久久久丝袜| www.97超碰| 26uuu久久天堂性欧美| 日本高清不卡三区| 2024最新电影在线免费观看| 亚洲不卡一区二区三区| av免费网站观看| 精品一区91| 亚洲欧美日韩另类| 男人的天堂久久久| 老牛影视一区二区三区| 亚洲综合自拍一区| 你懂的免费在线观看视频网站| 国产欧美日韩在线观看| av日韩在线看| 国产精品亚洲成在人线| 欧美zozo另类异族| 日韩福利在线视频| 尤物在线精品| 91精品视频在线免费观看| 天堂在线资源网| 中文字幕视频一区| 精品人妻一区二区三区四区在线 | 黄色av日韩| 国产精品福利在线观看| 欧美天堂在线视频| 中文字幕一区二区三区蜜月| 欧美v在线观看| 中文字幕一区二区三区日韩精品 | 爆操欧美美女| 91极品美女在线| 亚洲911精品成人18网站| 国产欧美日韩在线一区二区 | 亚洲成人激情社区| 欧美成人精品3d动漫h| 色屁屁草草影院ccyy.com| 亚洲欧洲一区| av一本久道久久波多野结衣| 国产大学生校花援交在线播放| 亚洲成人免费在线观看| 中文字幕日韩久久| 精品日本12videosex| 国产+人+亚洲| 国产视频手机在线| 中文字幕av一区 二区| 国产特级黄色大片| 91精品国产自产精品男人的天堂 | 亚洲女人毛茸茸高潮| 亚洲欧美日韩在线观看a三区| 99国产视频| 最近中文字幕免费mv2018在线| 欧美三级中文字| 91网站免费入口| 免费看的黄色欧美网站| 国产精品免费一区二区三区观看| 国产色在线观看| 欧美高清hd18日本| 一区二区三区在线播放视频| 首页国产欧美日韩丝袜| 明星裸体视频一区二区| 女厕盗摄一区二区三区| 亚洲国产精品字幕| 日本三级片在线观看| 成人精品国产一区二区4080| 人妻夜夜添夜夜无码av | 欧美成人a视频| 免费中文字幕在线| 国产经典欧美精品| 2022中文字幕| 精品网站aaa| 欧美一二三视频| 青青草在线免费观看| 粉嫩老牛aⅴ一区二区三区| 影音先锋黄色资源| 国产免费成人| 秋霞久久久久久一区二区| 欧美粗大gay| 中文字幕精品久久久久| 中文字幕永久在线视频| 国产精品短视频| 日本一区二区三区在线免费观看| 午夜视频精品| 久久99久久99精品蜜柚传媒| 暖暖成人免费视频| 色噜噜狠狠色综合网图区| 一级全黄少妇性色生活片| 亚洲视频免费在线观看| 亚洲妇女无套内射精| 国产视频一区三区| 日韩视频在线观看国产| 99久久这里有精品| 国内精品中文字幕| 黄色视屏网站在线免费观看| 欧美性xxxxx极品少妇| 无码黑人精品一区二区| 成人免费看视频| 国产裸体舞一区二区三区| 久久影视一区| 国产精品av一区| 91精品xxx在线观看| 精品精品国产国产自在线| 国产综合在线播放| 色欧美乱欧美15图片| 国产传媒免费在线观看| 成人一二三区视频| 婷婷免费在线观看| 亚洲国产片色| 亚洲精品国产精品国自产| 视频一区国产| 国产成人免费av| 手机电影在线观看| 在线观看国产欧美| 精品乱子伦一区二区| 日韩欧美精品网站| 中文字幕亚洲欧美日韩| 久久嫩草精品久久久精品| 手机免费看av网站| 国产精品最新自拍| 18视频在线观看娇喘| 精品在线播放| 成人区精品一区二区| 91tv亚洲精品香蕉国产一区| 九九热这里只有在线精品视| 国产天堂在线| 亚洲成年人在线播放| 国产精品久久婷婷| 色哟哟一区二区| 欧美亚洲天堂网| 亚洲丝袜精品丝袜在线| 亚洲精品视频久久久| 国产98色在线|日韩| 天天视频天天爽| 久久久久久久波多野高潮日日| 日韩中文字幕在线不卡| 日韩电影二区| 青娱乐一区二区| 亚洲毛片免费看| 国产乱人伦精品一区二区| 2019中文亚洲字幕| 国产精品久久久久久久久免费| 精品丝袜在线| 欧美精品久久久久| 2020国产在线视频| 久久精品亚洲94久久精品| 岛国在线视频| 亚洲性生活视频| 蜜桃视频在线免费| 精品亚洲一区二区三区在线观看| 好男人在线视频www| 欧美一级免费大片| 97人妻精品一区二区三区软件| 在线免费观看日韩欧美| 男人天堂av在线播放| 偷拍日韩校园综合在线| 国产在线视频二区| 亚洲成a人v欧美综合天堂下载| 农村黄色一级片| 亚洲精品国产无天堂网2021| 秋霞欧美一区二区三区视频免费| 国产精品久久一级| 手机免费观看av| 中文字幕在线一区免费| 美女网站视频色| 自拍偷在线精品自拍偷无码专区| 国产福利在线导航| 国产精品国产三级国产aⅴ中文| 色噜噜噜噜噜噜| 国产精品国产三级国产普通话蜜臀| 欧美亚洲色综久久精品国产| 国产日韩影视精品| 五月天婷婷丁香网| 中文字幕在线不卡视频| 成年人二级毛片| 亚洲青青青在线视频| 人妻少妇精品一区二区三区| 一区二区三区国产豹纹内裤在线| 国产亚洲精品码| 欧美日韩亚洲视频| 波多野结衣一区二区三区四区| 精品动漫一区二区| 在线免费观看国产精品| 欧美日韩免费一区二区三区 | 亚洲一区二区三区加勒比| 青青草综合网| 国产制服91一区二区三区制服| 韩国在线视频一区| 99精品人妻少妇一区二区| 久久动漫亚洲| 男人的天堂最新网址| 国产精品1区2区| 亚洲专区区免费| 国产精品久久网站| 欧美成人一区二区三区高清| 午夜精品一区二区三区电影天堂 | 欧美一区永久视频免费观看| www.五月激情| 亚洲欧美综合v| 久操视频在线| 国产91|九色| 四虎国产精品永久在线国在线 | 26uuu日韩精品一区二区| 天天综合网站| 粉嫩精品一区二区三区在线观看 | 2018国产在线| 日本在线不卡视频| 亚洲成年人在线观看| 国产亚洲午夜高清国产拍精品| 国产精品成人69xxx免费视频| 午夜激情一区二区三区| 一区二区乱子伦在线播放| 日韩欧美在线网站| 超碰免费在线| 性色av一区二区三区免费| yiren22亚洲综合| 国产一级特黄a大片99| 久久综合99| 国产精品秘入口18禁麻豆免会员| 蜜臀av性久久久久av蜜臀妖精| 伦理片一区二区| 136国产福利精品导航| 国产微拍精品一区| 91精品国产综合久久蜜臀| 日韩偷拍自拍| 欧美黑人xxxx| 中文字幕日本一区| 欧美二区三区| 国内综合精品午夜久久资源| 我要看一级黄色大片| 99re热视频精品| 男人操女人的视频网站| 欧洲在线/亚洲| 同心难改在线观看| 欧美精品www| 日本精品视频| 中文字幕一区二区三区四区五区六区 | 91麻豆视频网站| 国产精品suv一区二区| 欧美疯狂做受xxxx富婆| www.成人.com| 日本精品久久久| 欧美黄色录像| 成人免费aaa| 成人一区二区三区视频在线观看| 日韩成人短视频| 欧美福利一区二区| 久草中文在线| 成人激情电影一区二区| 久久精品高清| 亚洲色图久久久| 国产欧美综合色| 欧美三级网站在线观看| 亚洲人成在线观看| 亚洲风情在线资源| 久久久久资源| 久久国产成人| 91精品人妻一区二区三区蜜桃欧美| 亚洲不卡一区二区三区| 男人天堂一区二区| 97国产一区二区精品久久呦| 伊人精品综合| 国内自拍在线观看| 91麻豆文化传媒在线观看| 九九热在线免费观看| 国产偷亚洲偷欧美偷精品| 国产精选在线| 日韩高清dvd| 久久国产综合精品| 麻豆明星ai换脸视频| 日韩一级大片在线| 丁香花高清在线观看完整版| 国产精品久久久久久久久久久久午夜片 | 久久久一区二区三区捆绑**| 狠狠人妻久久久久久| 亚洲女人被黑人巨大进入al| 欧美艳星kaydenkross| 日韩在线电影一区| 久久成人av少妇免费| www欧美com| 精品国产乱码久久久久久闺蜜| www欧美xxxx| 蜜桃视频成人| 久久电影国产免费久久电影| 欧美丰满熟妇bbbbbb| 欧美sm极限捆绑bd| 最新日韩精品| 亚洲日本理论电影| 高清国产午夜精品久久久久久| 日本少妇裸体做爰| 一区二区在线视频| 国产日韩欧美中文在线| 国产在线播放观看| 中文字幕av资源一区| 亚洲国产精品国自产拍久久| 91精品成人久久| 欧洲福利电影| 欧美一级大片免费看| 欧美日韩亚洲一区二区三区| 成av人电影在线观看| 国产精品乱子乱xxxx| 肉色丝袜一区二区| 欧洲猛交xxxx乱大交3| 亚洲精品在线91| 国产精品va视频| 欧美性大战久久久久xxx| 中文字幕一区二区三区在线播放| 黄色av网站免费在线观看| 国产精品国产三级国产aⅴ浪潮 | 91丨porny丨探花| 中文字幕av不卡| 神马午夜精品95| 国产色婷婷国产综合在线理论片a| 伊人久久大香线蕉综合热线| 日本欧美一区二区三区不卡视频| 欧美白人最猛性xxxxx69交| 91成人抖音| 亚洲美免无码中文字幕在线|