本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。
更新 NGINX-Ingress 以使用稳定的 Ingress API
对于所有 Kubernetes API,一旦它们成为正式版本 (GA),都会有一个创建、维护并最终弃用的过程。networking.k8s.io API 组也不例外。即将发布的 Kubernetes 1.22 版本将移除几个与网络相关的已弃用 API:
- IngressClass 的
networking.k8s.io/v1beta1
API 版本 - 所有 Ingress 的 Beta 版本:
extensions/v1beta1
和networking.k8s.io/v1beta1
在 v1.22 的 Kubernetes 集群上,您将能够通过稳定(v1)API 访问 Ingress 和 IngressClass 对象,但无法通过其 Beta API 访问。此项更改自 2017 年、2019 年 Kubernetes 1.16 API 弃用以来一直在讨论,最近在 KEP-1453 中讨论:Ingress API 升级到 GA。
在社区会议期间,网络特别兴趣小组决定继续支持 Ingress-NGINX 0.47.0 版本在 Kubernetes 1.22 之前的版本上运行。对 Ingress-NGINX 的支持将持续到 Kubernetes 1.22 发布后的六个月。Ingress-NGINX 的任何额外 bug 修复和 CVE 将根据需要解决。
Ingress-NGINX 将有单独的 Ingress-NGINX 分支和版本来支持此模型,与 Kubernetes 项目过程保持一致。Ingress-NGINX 项目的未来版本将跟踪并支持最新的 Kubernetes 版本。
Kubernetes 版本 | Ingress-NGINX 版本 | 备注 |
---|---|---|
v1.22 | v1.0.0-alpha.2 | 新功能以及 bug 修复。 |
v1.21 | v0.47.x | 仅修复 bug,且仅针对安全问题或崩溃。未公布终止支持日期。 |
v1.20 | v0.47.x | 仅修复 bug,且仅针对安全问题或崩溃。未公布终止支持日期。 |
v1.19 | v0.47.x | 仅修复 bug,且仅针对安全问题或崩溃。修复仅提供到 Kubernetes v1.22.0 发布后的 6 个月。 |
由于 Kubernetes 1.22 的更新,v0.47.0 将无法与 Kubernetes 1.22 兼容。
您需要做什么
团队目前正在升级 ingress-nginx 以支持 v1 迁移,您可以在此处跟踪进展。
在 Ingress v1 的支持完成之前,我们不会对 ingress-nginx
进行功能改进。
在此期间,为确保没有兼容性问题:
- 更新到最新版本的 Ingress-NGINX;目前是 v0.47.0
- Kubernetes 1.22 发布后,请确保您使用的是支持 Ingress 和 IngressClass 稳定 API 的最新版本 Ingress-NGINX。
- 在集群版本 >= 1.19 上测试 Ingress-NGINX v1.0.0-alpha.2 版本,并向项目的 Github 页面报告任何问题。
欢迎社区在此项工作中提供反馈和支持。Ingress-NGINX 子项目定期举行社区会议,讨论此问题以及项目面临的其他问题。有关子项目的更多信息,请参阅 SIG Network。