本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
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 專案中再支援 Kubernetes 1.23 版本一年,其中包括 dockershim。對於託管的 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 釋出之前,我們將提供更多更新和指南。