Ingress NGINX 仍然可以运行,并不代表它仍处于可持续维护状态。对 ACK 集群来说,入口控制器一旦停止获得新版本、缺陷修复和安全补丁,继续把公网流量交给它,就需要自行承担后续漏洞响应和兼容性维护成本。
这类迁移的难点通常不在于“换一个 Controller”,而在于入口地址、Ingress 配置、注解、负载均衡和回退路径彼此关联。更稳妥的做法,是先建立新旧链路并行的过渡状态,再按比例放量,而不是一次性切换所有流量。
迁移前先梳理四类依赖
1. 入口和负载均衡
先确认现有入口使用的是 CLB 还是 NLB、监听协议和端口是什么、证书在哪里终止,以及 DNS 或客户端是否依赖固定地址。若迁移方案能够复用原有负载均衡,通常可以减少域名、IP 和调用方改造;但仍应核对 ACK CCM、IngressClass、监听配置和网关版本等前置条件。
2. Ingress 资源与注解
不要只统计 Ingress 数量,还要逐项检查路由匹配、TLS、重写、限流、认证、跨域和自定义 NGINX 注解。兼容的配置可以继续复用;不兼容的注解则需要转换为网关原生配置、插件或 Wasm 扩展。迁移前最好生成一份差异清单,并把每一项标记为“可直接复用”“需要改写”或“暂不支持”。
3. 业务验证范围
测试不能只验证首页能否打开,还应覆盖长连接、上传下载、WebSocket、超时、请求头、重试、证书链和真实后端错误码。对于有鉴权或流量治理的入口,还要确认插件执行顺序与原链路一致。可以先通过 hosts 或独立测试域名访问新入口,避免在正式流量上验证未知行为。
4. 回退条件
切流前明确什么情况需要回退,例如错误率、延迟、连接重置、5xx 比例或关键接口业务指标超过基线。回退动作应当是可执行的操作,而不是一句“出现问题再处理”。保留原有 Ingress、Service 和 Nginx Ingress Controller,直到新链路完成观察期,有助于把回退窗口留出来。
推荐的分阶段切流流程
- 确认环境:核对集群、网关、CCM、IngressClass、负载均衡类型和监听配置。
- 导入路由:让网关监听或导入现有 Ingress,先处理可以兼容的路由和注解。
- 处理差异:对不兼容项逐条选择原生配置、内置插件或扩展方案,并记录验证结果。
- 旁路验证:通过 hosts、测试域名或内部流量验证路由、TLS、鉴权、超时和后端访问。
- 小比例放量:先让新网关承接少量流量,观察错误率、延迟、连接数和业务指标。
- 逐步扩大:每次调整后留出观察时间;出现异常时优先快速下调新链路比例,而不是继续放量。
- 完成收尾:流量达到 100% 且观察稳定后,再清理旧链路,保留变更记录和回退方案。
个人站长和小团队怎么判断是否该迁移
如果集群中的 Ingress NGINX 只承载内网测试服务,风险和迁移优先级可以单独评估;如果它直接暴露公网、承载登录接口或连接多个生产服务,就不宜只因为“当前还能用”而长期拖延。迁移前先做配置盘点和兼容性验证,往往比在漏洞或故障发生后临时更换入口更可控。
云原生 API 网关的价值不只是提供一个替代入口,还在于把路由转换、注解分析、流量切换和回退集中到一条流程中。实际选择时,应以版本前提、注解兼容范围、负载均衡复用能力、可观测性和成本为准,不要仅依据“几分钟完成迁移”这类宣传表述。
无论最终选择哪一种网关,迁移验收都应留下三份结果:配置差异清单、切流与回退记录、以及新旧链路的业务指标对比。这样才能确认迁移不仅完成了流量转发,也完成了入口层的维护责任转移。
结语
Ingress NGINX 退役后的核心问题不是现有 Pod 会不会立刻停止,而是入口层是否还有明确的补丁、升级和应急路径。对生产 ACK 集群,建议尽早完成资源盘点,先在非生产环境验证兼容性,再通过并行链路和分阶段放量降低切换风险。