本文发表时间已超过一年。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已变为不正确。

更新 NGINX-Ingress 以使用稳定的 Ingress API

对于所有 Kubernetes API,都有一个创建、维护和最终在它们成为 GA 后弃用的过程。networking.k8s.io API 组也不例外。即将发布的 Kubernetes 1.22 版本将删除几个与网络相关的已弃用的 API。

  • networking.k8s.io/v1beta1 API 版本的 IngressClass
  • Ingress 的所有 beta 版本:extensions/v1beta1networking.k8s.io/v1beta1

在 v1.22 Kubernetes 集群上,您将能够通过稳定的 (v1) API 访问 Ingress 和 IngressClass 对象,但无法通过其 beta API 访问。此更改自 20172019 与 1.16 Kubernetes API 弃用问题进行讨论,最近在 KEP-1453 中讨论:将 Ingress API 升级到 GA

在社区会议期间,网络特别兴趣小组决定继续支持 Kubernetes 版本低于 1.22 的 Ingress-NGINX 版本 0.47.0。对 Ingress-NGINX 的支持将在 Kubernetes 1.22 发布后继续六个月。Ingress-NGINX 的任何其他错误修复和 CVE 都将根据需要进行处理。

Ingress-NGINX 将拥有单独的分支和 Ingress-NGINX 版本以支持此模型,从而镜像 Kubernetes 项目流程。Ingress-NGINX 项目的未来版本将跟踪并支持最新版本的 Kubernetes。

Ingress NGINX 支持的 Kubernetes 版本
Kubernetes 版本Ingress-NGINX 版本备注
v1.22v1.0.0-alpha.2新功能,以及错误修复。
v1.21v0.47.x仅修复错误,并且仅针对安全问题或崩溃。未公布支持终止日期。
v1.20v0.47.x仅修复错误,并且仅针对安全问题或崩溃。未公布支持终止日期。
v1.19v0.47.x仅修复错误,并且仅针对安全问题或崩溃。仅在 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