自从 ingress-nginx 和 ingate 宣布将于 2026 年 3 月正式停止维护以来,围绕如何从 ingress 平滑迁移到 gateway api 的讨论持续升温。由于二者在架构理念与资源模型上的根本差异,cert-manager 当前尚无法在 gateway api 场景下复现原有 ingress 中的 tls 自助服务能力。
Ingress 是一个单体式资源,而 Gateway API 则采用分层设计:由集群运维人员管控的 Gateway 资源,与由业务团队自主管理的 HTTPRoute 资源解耦;TLS 配置被统一收口至 Gateway 层,由平台侧集中管理。
当前缺失的关键拼图,是 Gateway API 中处于实验阶段的 XListenerSet 资源——其核心目标正是在共享 Gateway 上恢复按团队粒度的 TLS 自主配置能力。cert-manager 已规划在 1.20 版本(预计发布于 2026 年 2 月 10 日)中引入对 XListenerSet 的实验性支持,并将在 1 月份先行推出 alpha 版本供早期验证。
绝大多数 Ingress 用户以多租户模式部署控制器,典型代表包括 ingress-nginx 和 InGate。所谓多租户 Ingress 控制器,通常具备以下特征:
而在 Gateway API 模型中,TLS 配置已上移至 Gateway 资源层级:开发者虽可自由创建 HTTPRoute,却无权修改平台团队所拥有的共享 Gateway 对象。这直接导致 TLS 配置丧失自助能力,任何变更均需提交工单协调处理,如下图所示:

这一转变虽削弱了部分场景下的开发敏捷性,但恰恰体现了 Gateway API 的安全设计哲学:Ingress API 存在潜在风险——不同团队可能通过声明相同主机名但不同 TLS 设置的 Ingress 对象,无意或恶意劫持他人流量。尤其在大型集群中,多个团队共存时因冲突 Ingress 导致的流量劫持事件屡见不鲜。将 TLS 管控权收敛至 Gateway 层,显著提升了租户间的安全隔离边界,代价则是牺牲了简单多租户模型下的自助便利性。
目前 cert-manager 对 Gateway API 的 TLS 支持,仅限于监听 Gateway 资源本身:它会识别带有 cert-manager.io/issuer 或 cert-manager.io/cluster-issuer 注解、启用了 HTTPS 监听器、且已配置 tls.certificateRefs 字段的 Gateway 对象,并据此自动生成 Certificate 和 Secret。
参考示例:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: istio-gateway
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
gatewayClassName: istio
listeners:
- name: https
hostname: 'foo.example.com'
port: 443
protocol: HTTPS
allowedRoutes:
namespaces:
from: All
tls:
mode: Terminate
certificateRefs:
- name: gateway-tls需注意的是,cert-manager 并不解析 HTTPRoute 中的主机名字段,因为该字段仅用于路由匹配,不参与 TLS 握手过程。
该机制仅适用于以下两类有限场景:
但对于主流的“单一共享 Gateway + 多团队协作”模式而言,当前并无兼顾安全性与易用性的标准方案。若强行启用通配符证书或过度开放 RBAC 权限,则可能引入严重安全隐患。
依据 GEP-1713 提案,Gateway API 正在推进 ListenerSet 资源的标准化(现阶段以实验性 XListenerSet 形式存在),最初定位是支撑 Knative 等自动化平台高效管理海量监听器的需求。
实践发现,ListenerSet 同样能有效应对多租户共享 Gateway 下的 TLS 自助配置难题,同时保障基础设施运营方对 Gateway 核心资源的绝对控制权。
借助 ListenerSet,可达成如下分工:
Gateway API 控制器结合 RBAC 与命名空间隔离机制,确保各团队只能操作自己所属的 ListenerSet,彻底规避跨团队配置冲突:

对习惯 Ingress 的用户而言,“ListenerSet + HTTPRoute”组合提供了最贴近原生 Gateway API 的类 Ingress 使用体验,如下图所示:

cert-manager 1.20 将提供对 XListenerSet 资源的实验性支持,包括识别 cert-manager.io/issuer 和 cert-manager.io/cluster-issuer 注解(需显式启用特性门控)。当同一 Gateway 关联多个 ListenerSet 时,XListenerSet 的注解优先级高于 Gateway 本身的注解,后者作为兜底默认策略。
待 Gateway API 将 ListenerSet 资源正式晋升为稳定版本(v1)后,cert-manager 将同步提供对稳定版 ListenerSet 的完整支持,并配套推出从 XListenerSet 到 ListenerSet 的平滑迁移工具与指南。
cert-manager 1.20 计划于 2026 年 2 月发布,恰好位于 ingress-nginx 和 InGate 官方退役前一个月。鉴于 XListenerSet 当前仍属实验性质,需明确以下预期:
cert-manager 团队强调,推动用户平稳过渡至 Gateway API 是其长期战略重点。目前已全面启动文档与教程体系向 Gateway API 的迁移工作,期望 XListenerSet 成为多租户 Ingress 控制器用户的首选演进路径。
对于仍在使用 ingress-nginx 的用户,建议优先考虑迁移至其他成熟的 Ingress 控制器(如 Traefik),而非仓促切换至 Gateway API。待 cert-manager 对稳定版 ListenerSet 提供完备支持后,再系统性规划向 Gateway API 的整体迁移。
更多细节请参阅官方公告。
源码地址:点击下载
以上就是Ingress-nginx 退役:cert-manager 现状支持及未来展望的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号