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

k8s.gcr.io 映象倉庫將於 2023 年 4 月 3 日起凍結

Kubernetes 專案執行一個名為 registry.k8s.io 的社群所屬的映象倉庫,用於託管其容器映象。從 2023 年 4 月 3 日起,舊的映象倉庫 k8s.gcr.io 將被凍結,Kubernetes 及其相關子專案將不再向該舊倉庫推送任何映象。

這個新的映象倉庫 registry.k8s.io 取代了舊倉庫,並且已經正式釋出(GA)好幾個月了。我們曾發表過一篇部落格文章,介紹了它為社群和 Kubernetes 專案帶來的好處。該文章還宣佈了未來的 Kubernetes 版本將不再發布到舊倉庫。現在,這個時刻已經到來。

這一變化對貢獻者意味著什麼

  • 如果你是某個子專案的維護者,你需要更新你的清單檔案和 Helm charts 以使用新的映象倉庫。

這一變化對終端使用者意味著什麼

  • Kubernetes 1.27 版本將不會發布到舊倉庫。
  • 從四月起,1.24、1.25 和 1.26 的補丁版本將不再發布到舊倉庫。請閱讀下面的時間線,瞭解在舊倉庫釋出的最終補丁版本的詳細資訊。
  • 從 1.25 版本開始,預設的映象倉庫已設定為 registry.k8s.io。這個值可以在 kubeadmkubelet 中被覆蓋,但如果將其設定為 k8s.gcr.io,在四月之後的新版本中將會失敗,因為新版本將不會存在於舊倉庫中。
  • 如果你想提高叢集的可靠性,消除對社群所屬倉庫的依賴,或者你在限制外部流量的網路中執行 Kubernetes,你應該考慮託管本地映象倉庫映象。一些雲供應商可能會為此提供託管解決方案。

變更時間線

  • k8s.gcr.io 將於 2023 年 4 月 3 日凍結
  • 1.27 預計將於 2023 年 4 月 12 日釋出
  • k8s.gcr.io 上的最後一個 1.23 版本將是 1.23.18(1.23 在凍結前已停止維護)
  • k8s.gcr.io 上的最後一個 1.24 版本將是 1.24.12
  • k8s.gcr.io 上的最後一個 1.25 版本將是 1.25.8
  • k8s.gcr.io 上的最後一個 1.26 版本將是 1.26.3

接下來

請確保你的叢集沒有對舊映象倉庫的依賴。例如,你可以執行此命令來列出 Pod 使用的映象:

kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" |\
tr -s '[[:space:]]' '\n' |\
sort |\
uniq -c

可能還存在其他對舊映象倉庫的依賴。請確保你檢查了所有潛在的依賴項,以保持叢集的健康和更新。

致謝

改變是困難的,但改進我們的映象服務平臺是確保專案可持續未來的必要之舉。我們努力為所有使用 Kubernetes 的人提供更好的體驗。來自我們社群各個角落的許多貢獻者已經為此付出了長期而艱辛的努力,以確保我們做出最佳決策、執行計劃,並盡最大努力傳達這些計劃。

感謝來自 SIG K8s Infra 的 Aaron Crickenberger、Arnaud Meukam、Benjamin Elder、Caleb Woodbine、Davanum Srinivas、Mahamed Ali 和 Tim Hockin,來自 SIG Node 的 Brian McQueen 和 Sergey Kanzhelev,來自 SIG Cluster Lifecycle 的 Lubomir Ivanov,來自 SIG Release 的 Adolfo García Veytia、Jeremy Rickard、Sascha Grunert 和 Stephen Augustus,來自 SIG Contribex 的 Bob Killen 和 Kaslin Fields,以及來自安全響應委員會的 Tim Allclair。同時,也非常感謝我們與雲提供商合作伙伴的聯絡人朋友們:來自 Amazon 的 Jay Pipes 和來自 Google 的 Jon Johnson Jr.。