本文已超过一年。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已发生变化。
将 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 中一直在讨论。
在社区会议期间,Networking Special Interest Group(兴趣小组)已决定继续通过 Ingress-NGINX 0.47.0 版本支持早于 1.22 的 Kubernetes 版本。对 Ingress-NGINX 的支持将持续到 Kubernetes 1.22 发布后的六个月。Ingress-NGINX 的任何额外的 bug 修复和 CVE 将按需处理。
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。
- 使用 Ingress-NGINX v1.0.0-alpha.2 版本测试集群版本 >= 1.19 的情况,并将遇到的任何问题报告到项目的 Github 页面。
欢迎社区在此项工作中的反馈和支持。Ingress-NGINX 子项目定期举行社区会议,讨论此问题和项目面临的其他问题。有关该子项目的更多信息,请参见 SIG Network。