本文已發布超過一年。較舊的文章可能包含過時的內容。請檢查本頁面中的資訊自發布以來是否已變得不正確。

Kubernetes 移除 Dockershim:承諾與後續步驟

Kubernetes 將在即將到來的 v1.24 版本中移除 dockershim。我們很高興藉由支援開放原始碼容器運行時、實現更小的 kubelet,以及提高使用 Kubernetes 團隊的工程速度,再次確認我們的社群價值。如果您使用 Docker Engine 作為 Kubernetes 叢集的容器運行時,請準備在 1.24 版本中進行遷移!若要檢查您是否受到影響,請參閱檢查 dockershim 移除是否影響您

為何我們要棄用 dockershim

Docker 是 Kubernetes 使用的第一個容器運行時。這是 Docker 對許多 Kubernetes 使用者和愛好者來說如此熟悉的原因之一。Docker 支援被硬編碼到 Kubernetes 中 – 專案稱之為 dockershim 的組件。隨著容器化成為行業標準,Kubernetes 專案新增了對其他運行時的支援。這最終促成了容器運行時介面 (CRI) 的實作,讓系統組件 (例如 kubelet) 以標準化的方式與容器運行時進行通訊。因此,dockershim 成為 Kubernetes 專案中的一個異常。對 Docker 和 dockershim 的依賴已蔓延到 CNCF 生態系統中的各種工具和專案中,導致程式碼變得脆弱。

透過移除 dockershim CRI,我們正在擁抱 CNCF 的首要價值:「快速勝過緩慢」。請繼續關注未來關於此主題的通訊!

棄用時程

我們在 2020 年 12 月正式宣布 dockershim 棄用。完整移除目標是在 2022 年 4 月的 Kubernetes 1.24 版本。此時程與我們的棄用政策一致,該政策規定,已棄用的行為必須在其宣布棄用後至少運作 1 年。

我們將在 Kubernetes 專案中再支援包含 dockershim 的 Kubernetes 1.23 版本一年。對於託管 Kubernetes 提供商而言,供應商支援可能會持續更長時間,但這取決於公司本身。無論如何,我們相信所有叢集營運商都將有時間進行遷移。如果您對 dockershim 移除有更多疑問,請參閱Dockershim 棄用常見問題解答

我們在此調查中詢問您是否已準備好從 dockershim 遷移:您準備好移除 Dockershim 了嗎。我們收到了超過 600 份回覆。感謝所有花時間填寫問卷的人。

結果顯示,我們仍有許多工作要做,以協助您順利遷移。其他容器運行時確實存在,並且已得到廣泛推廣。然而,許多使用者告訴我們,他們仍然依賴 dockershim,有時會有需要重新設計的依賴關係。其中一些依賴關係超出您的控制範圍。根據您的回饋,以下是我們正在採取的一些協助步驟。

我們的下一步

根據您提供的回饋

  • CNCF 和 1.24 版本團隊致力於及時交付 1.24 版本的文件。這包括更多資訊豐富的部落格文章 (如這篇)、更新現有的程式碼範例、教學課程和任務,以及為叢集營運商製作遷移指南。
  • 我們正在聯繫 CNCF 社群的其他成員,以協助他們為此變更做好準備。

如果您參與的專案依賴 dockershim,或者您有興趣協助遷移工作,請加入我們!無論是我們的轉換工具還是我們的文件,始終有更多貢獻者的空間。若要開始,請在 #sig-node 頻道上的 Kubernetes Slack 上打聲招呼!

最終想法

作為一個專案,我們已經看到叢集營運商在 2021 年間越來越多地採用其他容器運行時。我們相信遷移沒有重大障礙。我們為改善遷移體驗而採取的步驟將為您更清楚地指明方向。

我們理解從 dockershim 遷移是您可能需要執行的另一項操作,以保持 Kubernetes 基礎架構處於最新狀態。對於大多數人來說,此步驟將是直接且透明的。在某些情況下,您會遇到小問題或狀況。社群已深入討論延後 dockershim 移除是否有幫助。例如,我們最近在 11 月 11 日的 SIG Node 討論12 月 6 日舉行的 Kubernetes 指導委員會會議中討論了這個問題。我們已經在 2021 年延後過一次,因為其他運行時的採用率低於我們的預期,這也給了我們更多時間來識別潛在的阻礙問題。

在此時,我們相信您 (和 Kubernetes) 從 dockershim 移除中獲得的價值彌補了您將付出的遷移努力。現在開始規劃以避免意外。在 Kubernetes 1.24 發布之前,我們將提供更多更新和指南。