Kubernetes 1.24 將結束對 dockershim 的支援

danny_2018發表於2022-04-26

最新版本的 Kubernetes 容器編排平臺將不再原生支援 Docker 容器執行時,這對使用者來說是一個重大變化。

原計劃 4 月 19 號,延遲到 5 月 3 日釋出的 Kubernetes 1.24 版本標誌著流行的開源容器編排系統的重大轉變,因為對內建的 dockershim 支援將一勞永逸地刪除。

Docker是Kubernetes使用的第一個容器執行時。但隨著 Kubernetes 專案向自己的開放容器倡議 (OCI) 過渡,它需要一個權宜之計,以實現與其他各種容器執行時的可移植性。這個權宜之計就是 dockershim。

從本質上講,dockershim 最初的目的是作為一種臨時解決方案,允許流行的 Docker Engine 容器執行時將 OCI 呼叫轉換為 Kubernetes 自己的容器執行時介面 (CRI) 中的 Docker 呼叫。隨著時間的推移,dockershim 在 Kubernetes 部署中變得根深蒂固,但會減慢部署速度並給維護者帶來負擔,所以它不得不被移除。

如何為 dockershim 棄用做準備

現在預計在 5 月 3 日釋出的 Kubernetes v1.24 版本將要求想要使用最新版本軟體的使用者從 dockershim 遷移到與 Kubernetes 自己相容的另一個執行時,或者使用由 Mirantis 開發的 dockershim 的外部替代品,稱為cri-dockerd。

雖然 Kubernetes 節點將不再預設使用 Docker 執行時,但許多開發人員和管理員已經切換到其他符合 CRI 的執行時,例如 Docker 本身在 2017 年捐贈給 CNCF 的 containerd 和 CRI-O。這通常涉及確保在叢集中的每個節點上執行的 kubelet 代理配置為呼叫 containerd 或 CRI-O 套接字。

各種託管 Kubernetes 供應商,例如 Red Hat OpenShift,它在 2019 年採用了 CRI-O。Amazon 的 Elastic Kubernetes Service (EKS)、Microsoft 的 Azure Kubernetes Service (AKS) 和 Google 的 Kubernetes Engine (GKE) 已經預設使用 containerd。Microsoft 還為使用 Kubernetes 1.19 或更高版本建立的 Azure Kubernetes[9] Linux 節點池採用了 containerd。

切換到符合 CRI 的執行時

不使用符合 CRI 的執行時替換 dockershim 的開發人員可能會使他們的叢集落後於安全補丁,同時也會錯過新功能。

Kubernetes 維護人員在一月份的一篇部落格文章中寫道。“在這一點上,我們相信您(和 Kubernetes)從 dockershim 移除中獲得的價值彌補了您將要進行的遷移工作”。

開發人員仍然可以在本地使用 Docker 來開發或測試容器,無論為 Kubernetes 叢集使用哪個容器執行時。Docker 生成的映象將繼續在具有所有符合 CRI 的執行時的叢集中工作,但不會繼續受支援。

來自 “ 進擊雲原生 ”, 原文作者:進擊雲原生;原文連結:https://mp.weixin.qq.com/s/dRmjnfTiffLAW-qoVIxPEQ,如有侵權,請聯絡管理員刪除。

相關文章