Kubernetes 1.24 將結(jié)束對(duì)dockershim 的支持

最新版本的 Kubernetes 容器編排平臺(tái)將不再原生支持 Docker 容器運(yùn)行時(shí),這對(duì)用戶來說是一個(gè)重大變化。
原計(jì)劃 4 月 19 號(hào),延遲到 5 月 3 日發(fā)布的 Kubernetes 1.24 版本標(biāo)志著流行的開源容器編排系統(tǒng)的重大轉(zhuǎn)變,因?yàn)閷?duì)內(nèi)置的 dockershim 支持將一勞永逸地刪除。
Docker是Kubernetes使用的第一個(gè)容器運(yùn)行時(shí)。但隨著 Kubernetes 項(xiàng)目向自己的開放容器倡議 (OCI) 過渡,它需要一個(gè)權(quán)宜之計(jì),以實(shí)現(xiàn)與其他各種容器運(yùn)行時(shí)的可移植性。這個(gè)權(quán)宜之計(jì)就是 dockershim。
從本質(zhì)上講,dockershim 最初的目的是作為一種臨時(shí)解決方案,允許流行的 Docker Engine 容器運(yùn)行時(shí)將 OCI 調(diào)用轉(zhuǎn)換為 Kubernetes 自己的容器運(yùn)行時(shí)接口 (CRI) 中的 Docker 調(diào)用。隨著時(shí)間的推移,dockershim 在 Kubernetes 部署中變得根深蒂固,但會(huì)減慢部署速度并給維護(hù)者帶來負(fù)擔(dān),所以它不得不被移除。
如何為 dockershim 棄用做準(zhǔn)備
現(xiàn)在預(yù)計(jì)在 5 月 3 日發(fā)布的 Kubernetes v1.24 版本將要求想要使用最新版本軟件的用戶從 dockershim 遷移到與 Kubernetes 自己兼容的另一個(gè)運(yùn)行時(shí),或者使用由 Mirantis 開發(fā)的 dockershim 的外部替代品,稱為cri-dockerd。
雖然 Kubernetes 節(jié)點(diǎn)將不再默認(rèn)使用 Docker 運(yùn)行時(shí),但許多開發(fā)人員和管理員已經(jīng)切換到其他符合 CRI 的運(yùn)行時(shí),例如 Docker 本身在 2017 年捐贈(zèng)給 CNCF 的 containerd 和 CRI-O。這通常涉及確保在集群中的每個(gè)節(jié)點(diǎn)上運(yùn)行的 kubelet 代理配置為調(diào)用 containerd 或 CRI-O 套接字。
各種托管 Kubernetes 供應(yīng)商,例如 Red Hat OpenShift,它在 2019 年采用了 CRI-O。Amazon 的 Elastic Kubernetes Service (EKS)、Microsoft 的 Azure Kubernetes Service (AKS) 和 Google 的 Kubernetes Engine (GKE) 已經(jīng)默認(rèn)使用 containerd。Microsoft 還為使用 Kubernetes 1.19 或更高版本創(chuàng)建的 Azure Kubernetes[9] Linux 節(jié)點(diǎn)池采用了 containerd。
切換到符合 CRI 的運(yùn)行時(shí)
不使用符合 CRI 的運(yùn)行時(shí)替換 dockershim 的開發(fā)人員可能會(huì)使他們的集群落后于安全補(bǔ)丁,同時(shí)也會(huì)錯(cuò)過新功能。
Kubernetes 維護(hù)人員在一月份的一篇博客文章中寫道。“在這一點(diǎn)上,我們相信您(和 Kubernetes)從 dockershim 移除中獲得的價(jià)值彌補(bǔ)了您將要進(jìn)行的遷移工作”。
開發(fā)人員仍然可以在本地使用 Docker 來開發(fā)或測(cè)試容器,無論為 Kubernetes 集群使用哪個(gè)容器運(yùn)行時(shí)。Docker 生成的鏡像將繼續(xù)在具有所有符合 CRI 的運(yùn)行時(shí)的集群中工作,但不會(huì)繼續(xù)受支持。

































