日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Kube.NETes1.24版本發(fā)布時(shí),正式宣布棄用Dockershim,轉(zhuǎn)向ContAInerd作為默認(rèn)的容器運(yùn)行環(huán)境。Kubernetes以CRI(Container Runtime Interface)容器運(yùn)行時(shí)接口制定接入準(zhǔn)則,用戶可以使用Containerd、CRI-O、CRI- Dockerd及其他容器運(yùn)行時(shí)作為Kubernetes的容器引擎。

Kubernetes為何棄用Dockershim?

Docker在早期沒有實(shí)現(xiàn)Container Runtime Interface (CRI),而CRI是Kubernetes后來增加的對額外運(yùn)行時(shí)的支持標(biāo)準(zhǔn)。Dockershim的存在是為了支持將Docker硬編碼到Kubernetes中,但隨著容器化成為行業(yè)標(biāo)準(zhǔn),Kubernetes項(xiàng)目增加了對額外運(yùn)行時(shí)的支持,比如通過Container Runtime Interface (CRI)容器運(yùn)行時(shí)接口來支持運(yùn)行容器。因此,在Kubernetes1.20版本發(fā)布的時(shí)候提到未來會棄用Dockershim引擎,而在Kubernetes1.24版本發(fā)布時(shí), 正式棄用之。

什么是 Containerd ?

containerd是一種容器運(yùn)行時(shí)引擎,原屬于Docker的組件的一部分,主要提供容器生命周期管理(從創(chuàng)建到銷毀容器)、拉取和推送鏡像、存儲管理(管理鏡像及容器數(shù)據(jù)的存儲)、調(diào)用runc容器運(yùn)行等,現(xiàn)已由開源社區(qū)拆分脫離出來單獨(dú)作為容器運(yùn)行時(shí)項(xiàng)目。

在Kubernetes中,Containerd作為容器運(yùn)行環(huán)境,負(fù)責(zé)管理Pod的生命周期,包括容器的創(chuàng)建、啟動、停止和刪除等操作。與Dockershim相比,Containerd具有更好的性能、更強(qiáng)的可擴(kuò)展性以及更簡潔的架構(gòu)。

Kubernetes棄用Dockershim,轉(zhuǎn)向Containerd:影響及如何應(yīng)對

容器運(yùn)行底層組件有哪些關(guān)系?

Docker Client和Docker Daemon:Docker Client是Docker的客戶端,它可以通過命令行或API向Docker Daemon發(fā)送請求。Docker Daemon是Docker的核心組件,負(fù)責(zé)管理鏡像、容器、網(wǎng)絡(luò)和卷等資源,并將Docker API暴露給客戶端。

Docker鏡像和Docker容器:Docker鏡像是只讀的模板,包含了所有用于運(yùn)行應(yīng)用程序所需要的代碼、庫文件、環(huán)境變量和配置文件等內(nèi)容。Docker容器是基于Docker鏡像創(chuàng)建的可運(yùn)行實(shí)例。每個容器都是一個獨(dú)立的、輕量級的操作系統(tǒng),它們之間相互隔離并且可以共享主機(jī)的內(nèi)核。

CRI(Container Runtime Interface)和容器運(yùn)行時(shí):CRI是Kubernetes的容器運(yùn)行時(shí)標(biāo)準(zhǔn)接口,滿足這個標(biāo)準(zhǔn)的所有容器運(yùn)行時(shí)都可以被使用。容器運(yùn)行時(shí)則提供了一個輕量級的容器運(yùn)行環(huán)境,用于創(chuàng)建、啟動和停止容器。

OCI(Open Container Initiative)和runc:OCI是一個開放的容器組織,它制定了容器運(yùn)行時(shí)的規(guī)范,包括運(yùn)行時(shí)規(guī)范、容器鏡像規(guī)范等。runc是OCI標(biāo)準(zhǔn)的一個參考實(shí)現(xiàn),它與容器所依賴的cgroup/linux kernel等進(jìn)行交互,是容器最終運(yùn)行的形態(tài)之一。

Kubernetes棄用Dockershim,轉(zhuǎn)向Containerd:影響及如何應(yīng)對

Containerd在Kubernetes的運(yùn)行變化

在Kubernetes 1.24版本以前,Kubernetes通過調(diào)用Docker命令來創(chuàng)建容器。具體來說,Kubernetes將任務(wù)發(fā)送給Docker客戶端,然后Docker客戶端通過與Docker守護(hù)進(jìn)程(daemon)通信來創(chuàng)建容器。Docker守護(hù)進(jìn)程會通過Image模塊下載鏡像并保存,然后通過client調(diào)用containerd創(chuàng)建并運(yùn)行容器。在這個過程中,如果需要給容器添加持久化存儲,可以使用volume參數(shù);如果需要配置容器網(wǎng)絡(luò),可以通過network參數(shù)來實(shí)現(xiàn)。

然而,Kubernetes提供了更強(qiáng)大的卷掛載能力和集群級別的網(wǎng)絡(luò)能力。在集群中,kubelet只會使用到Docker提供的鏡像下載和容器管理功能,而編排、網(wǎng)絡(luò)、存儲等功能都不會用到。

在Kubernetes 1.24版本以后,Containerd作為容器運(yùn)行時(shí)被引入,帶來了創(chuàng)建Pod所需的所有功能。與之前的方案相比,這不僅帶來了更純粹的功能模塊,而且縮短了調(diào)用鏈,提高了系統(tǒng)的效率和穩(wěn)定性。因此,用戶可以使用Containerd、CRI-O、CRI-Dockerd及其他容器運(yùn)行時(shí)作為Kubernetes的容器引擎。

Kubernetes棄用Dockershim,轉(zhuǎn)向Containerd:影響及如何應(yīng)對

Containerd在Kubernetes中的工作流

  1. Kubelet通過CRI運(yùn)行時(shí)服務(wù)API調(diào)用CRI插件來創(chuàng)建Pod。
  2. CRI創(chuàng)建一個特殊的沙箱容器(pause容器),并將其放置在Pod的Cgroups和NameSpace命名空間中。
  3. CRI使用CNI配置Pod的網(wǎng)絡(luò)命名空間。
  4. Kubelet隨后通過CRI鏡像服務(wù)API調(diào)用CRI插件來拉取應(yīng)用容器鏡像。如果鏡像不存在于節(jié)點(diǎn)上,CRI會進(jìn)一步使用Containerd來拉取鏡像。
  5.  Kubelet通過CRI運(yùn)行時(shí)服務(wù)API調(diào)用CRI,并使用拉取的容器鏡像在Pod內(nèi)創(chuàng)建和啟動應(yīng)用程序容器。
  6. CRI創(chuàng)建應(yīng)用程序容器,將其放入Pod的Cgroups和NameSpace中,然后啟動Pod的新應(yīng)用容器。

在這些步驟之后,一個Pod及其相應(yīng)的應(yīng)用程序容器被創(chuàng)建并運(yùn)行。

Kubernetes棄用Dockershim,轉(zhuǎn)向Containerd:影響及如何應(yīng)對

Kubernetes棄用Dockershim的影響

容器鏡像,由于Docker鏡像符合OCI規(guī)范,因此可以直接使用而不受影響。此外,原鏡像打包方式仍然可用,即使用docker build方式打包鏡像。這意味著用戶在構(gòu)建和打包鏡像時(shí)不需要做出任何改變

Kubernetes中的運(yùn)行過程,作為終端用戶(Kubernetes使用者)基本也不會有任何影響,因?yàn)镵ubernetes的使用邏輯沒有任何變化。然而,與Dockershim相關(guān)的API接口已經(jīng)棄用,如果創(chuàng)建了此類CRD,需要注意修改相關(guān)代碼。

運(yùn)維方式,節(jié)點(diǎn)后端運(yùn)維時(shí)使用的命令由docker命令改為containerd。如果舊環(huán)境使用的是Dockershim引擎,需要先改為containerd運(yùn)行時(shí)再進(jìn)行升級。運(yùn)維人員則需要適應(yīng)新的命令行工具和運(yùn)行時(shí)環(huán)境。

Kubernetes棄用Dockershim而采用containerd作為容器運(yùn)行時(shí)對用戶和運(yùn)維方式會有一些影響,但對于已經(jīng)符合OCI規(guī)范的鏡像和使用docker build方式打包鏡像的用戶來說,基本無感知。

Kubernetes用戶如何應(yīng)對?

用戶需要按照Kubernetes官方提供的遷移指南進(jìn)行操作。這包括更新Kubernetes版本、修改Pod配置文件、調(diào)整部署流程、更換鏡像管理工具以及重新配置監(jiān)控和日志采集工具等步驟。在遷移過程中,用戶還需要注意測試新環(huán)境的穩(wěn)定性和性能,確保遷移成功。

在遷移過程中,用戶可能會遇到各種問題,如配置錯誤、兼容性問題、性能下降等。為了解決這些問題,用戶可以參考Kubernetes官方文檔和社區(qū)資源,或者向靈雀云的服務(wù)團(tuán)隊(duì)尋求幫助和支持。此外,用戶還可以在測試環(huán)境中模擬遷移過程,提前發(fā)現(xiàn)和解決問題。

遷移到Containerd后,用戶可以對系統(tǒng)進(jìn)行一系列優(yōu)化和改進(jìn),以提高性能和穩(wěn)定性。例如,優(yōu)化Pod的配置和部署流程、使用更高效的網(wǎng)絡(luò)配置方式、改進(jìn)監(jiān)控和日志采集策略等。此外,用戶還可以關(guān)注Kubernetes和Containerd的最新版本和功能更新,及時(shí)跟進(jìn)技術(shù)發(fā)展趨勢。

Kubernetes棄用Dockershim,轉(zhuǎn)向Containerd:影響及如何應(yīng)對

結(jié)論與展望

Kubernetes棄用Dockershim并轉(zhuǎn)向Containerd已經(jīng)成為一個明顯的趨勢信號。對于現(xiàn)有的Kubernetes用戶來說,應(yīng)盡快了解這一變化的影響和應(yīng)對策略,找到適合自己的方案并盡早進(jìn)行改進(jìn)。未來,Kubernetes與Containerd的發(fā)展趨勢將更加緊密地結(jié)合在一起,共同推動容器技術(shù)的不斷創(chuàng)新和發(fā)展。

參考文檔:

 

  • https://kubernetes.io/zh-cn/blog/2022/02/17/dockershim-faq/
  • https://kubernetes.io/zh-cn/blog/2020/12/02/dont-panic-kubernetes-and-docker/

分享到:
標(biāo)簽:Kubernetes
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定