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

k8s.gcr.io 映像登錄檔將於 2023 年 4 月 3 日起凍結

Kubernetes 專案運行一個社群擁有的映像檔登錄檔,名為 registry.k8s.io,以託管其容器映像檔。在 2023 年 4 月 3 日,舊的登錄檔 k8s.gcr.io 將被凍結,並且 Kubernetes 和相關子專案的進一步映像檔將不會被推送到舊的登錄檔。

此登錄檔 registry.k8s.io 取代了舊的登錄檔,並且已經普遍可用數月。我們發布了一篇部落格文章,介紹了它對社群和 Kubernetes 專案的好處。這篇文章還宣布,未來版本的 Kubernetes 將不會在舊的登錄檔中提供。現在時候到了。

此變更對貢獻者意味著什麼

  • 如果您是子專案的維護者,您將需要更新您的 manifest 和 Helm chart 以使用新的登錄檔。

此變更對終端使用者意味著什麼

  • 1.27 Kubernetes 版本將不會發布到舊的登錄檔。
  • 1.24、1.25 和 1.26 的修補程式版本將不再從 4 月起發布到舊的登錄檔。請閱讀以下時間表以了解舊登錄檔中最終修補程式版本的詳細資訊。
  • 從 1.25 開始,預設映像檔登錄檔已設定為 registry.k8s.io。此值可在 kubeadmkubelet 中覆寫,但將其設定為 k8s.gcr.io 將會在 4 月之後的新版本中失敗,因為它們不會出現在舊的登錄檔中。
  • 如果您想提高叢集的可靠性並消除對社群擁有的登錄檔的依賴,或者您在外部流量受限的網路中運行 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。