这篇文章已超过一年。旧文章可能包含过时内容。请确认页面中的信息自发布以来是否仍准确无误。
k8s.gcr.io 镜像仓库将从 2023 年 4 月 3 日起冻结
Kubernetes 项目运行着一个社区拥有的镜像仓库 registry.k8s.io
来托管其容器镜像。2023 年 4 月 3 日,旧的仓库 k8s.gcr.io
将被冻结,Kubernetes 及相关子项目的后续镜像将不再推送到旧仓库。
这个仓库 registry.k8s.io
替换了旧仓库,并且已经正式可用(GA)好几个月了。我们发表了一篇博客文章,介绍了它对社区和 Kubernetes 项目的好处。该文章还宣布未来的 Kubernetes 版本将不会在旧仓库中提供。现在,那个时刻已经到来。
这项变更对贡献者意味着什么
- 如果你是子项目的维护者,你需要更新你的清单文件和 Helm Chart 以使用新的仓库。
这项变更对终端用户意味着什么
- Kubernetes 1.27 版本将不会发布到旧仓库。
- 1.24、1.25 和 1.26 的补丁版本从四月起将不再发布到旧仓库。请阅读下面的时间表,了解旧仓库中最终补丁版本的详细信息。
- 从 1.25 版本开始,默认镜像仓库已设置为
registry.k8s.io
。这个值可以在kubeadm
和kubelet
中覆盖,但四月之后的新版本如果设置为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.12k8s.gcr.io
上的最后一个 1.25 版本将是 1.25.8k8s.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.。