Ingress-nginx 和 InGate 即将退役 发表于 2025-12-05 | 分类于 k8s | 暂无评论 ingress-nginx 和其原计划的替代品 InGate 都将于 2026 年 3 月退役。 为了优先保障生态系统的安全,Kubernetes SIG Network 和安全响应委员会宣布即将停止Ingress NGINX的维护。我们将尽力维护该服务至 2026 年 3 月。 此后,我们将不再发布任何新版本,不再修复任何漏洞,也不会更新任何可能发现的安全漏洞。现有的 Ingress NGINX 部署将继续运行,安装文件也将继续可用。 我们建议您迁移到众多替代方案之一。您可以考虑迁移到 Gateway API,它是 Ingress 的现代替代方案。如果您必须继续使用 Ingress,Kubernetes 文档中列出了许多替代的 Ingress 控制器。 **简单来说,这是一个关于“社区维护动力不足”的故事:** - Ingress-NGINX的困境:长期以来,该项目只有1-2名核心维护者利用业余时间进行开发。同时,其早期为追求灵活性而设计的庞大代码和功能(如“snippets”注解)形成了难以克服的技术债务和安全隐患。即使尝试寻找更多支持也未能成功。 - InGate的夭折:为了解决以上问题,社区曾尝试开发一个名为InGate的全新控制器。但这个项目同样未能吸引到足够的开发兴趣和支持,最终连成熟阶段都未能达到,因此决定与Ingress-NGINX一同退役。 ### 其他Ingress控制器 #### Traefik 以易用性和自动服务发现著称,在云原生社区中非常流行,常作为入门和轻量级首选。 配置简单,原生支持Let's Encrypt,拥有友好的Web UI。 #### Kong / Kong Ingress 基于Nginx并强化了API网关能力,在需要高级API管理的场景中非常流行 插件生态极其丰富,适合构建复杂的API策略、微服务治理。 #### HAProxy Ingress 以其卓越的性能和低资源消耗闻名,在对性能有极致要求的场景中备受青睐 性能标杆,配置模型高效直接,社区版本功能强大。 #### Apache APISIX Ingress 基于云原生API网关Apache APISIX,是近年来发展迅速、热度很高的项目 动态加载能力极强,支持多语言插件,功能丰富(内置服务发现、熔断等) #### 基于 Envoy 的控制器 (如 Contour, Emissary) Envoy是云原生数据面的事实标准,以其可观测性和动态配置能力吸引大量用户。 通常与高级流量管理(金丝雀发布、A/B测试)深度集成,可观测性好。 当人们提到“基于 Envoy 的控制器”,其实是在强调其底层使用了 Envoy 这个高性能、可动态配置的代理,以及由此带来的现代化网络架构优势。 #### NGINX Inc. 官方版 作为NGINX公司的商业/开源产品,是寻求稳定性和商业支持用户的常见选择 功能成熟稳定,有商业支持(NGINX Plus版本),与Ingress-NGINX配置可能有一定相似性。 #### 功能与需求匹配 简单路由:Traefik、HAProxy Ingress是很好的选择。 高级API网关功能(限流、鉴权、转换):Kong、Apache APISIX、基于Envoy的控制器(如Emissary)更擅长。 极致性能:重点关注 HAProxy Ingress。 ### Gateway API 除了替换,也可以评估 Gateway API。 它是Kubernetes官方推荐的下一代Ingress标准,代表了未来方向。 Gateway API 本身只是一套标准规范,你需要一个实现了该标准的控制器才能运行。目前社区有许多流行的选择都提供了 Gateway API 的实现 - Traefik:Traefik v3已全面增强对Gateway API v1.1.0+的支持。 - Kong/Kong Ingress: Kong Kubernetes Ingress Controller (KIC) 和 Kong Gateway Operator 均已支持。 - HAProxy Ingress: v0.13版本部分支持Gateway API v1alpha1规范,社区驱动。 - Apache APISIX Ingress: 控制器2.0.0-rc1引入了Gateway API扩展机制,支持v1beta1规范。 - Contour: 从v1.26.0开始支持Gateway API v0.8.0(对应v1beta1 API),对HTTPRoute等核心功能支持良好。 - Emissary-ingress: 基于Envoy,提供Gateway API实现。 **当前支持基本都处于Beta和Alpha阶段。** ### 当前建议: 对于现有 ingress-nginx 用户,建议先迁移到其他 Ingress 控制器(如 Traefik),而非立刻切换 Gateway API。 #### 第一步(更换控制器):解决 “维护性” 危机。 动作:从不再维护的Ingress-NGINX,迁移到活跃维护的Traefik(使用其传统的IngressRoute CRD或原生Ingress)。 本质:这还是在“传统Ingress范式”内更换工具,配置心智模型相似,迁移风险相对较小,但能立即获得安全更新。 #### 第二步(切换API标准):解决 “面向未来” 的问题。 动作:在Traefik稳定运行后,在适当的时机,将配置从Traefik的IngressRoute,逐步重写或转换为标准的Gateway API资源(如HTTPRoute)。 本质:这是一次“API范式的升级”,涉及学习新概念和可能的配置转换,但能让你踏上官方标准的未来路线。 参考: >https://www.kubernetes.dev/blog/2025/11/12/ingress-nginx-retirement/ >https://www.oschina.net/news/387828 >https://chat.deepseek.com/