ingress-nginx 上游停更了,怎么办?社区分支来接力

0 阅读2分钟

背景

2026 年 3 月,Kubernetes SIG Network 正式将 kubernetes/ingress-nginx 归档停更。官方推荐迁移到 Gateway API,但迁移意味着:

  • 改造所有 Ingress 资源为 Gateway API 配置
  • 验证新控制器的行为兼容性
  • 回归测试所有业务流量

对于很多团队来说,这不是一个短期内能完成的工程。

社区分支

我做了一个社区分支,目标是在不改变现有配置的前提下,继续获得 NGINX 版本更新和安全补丁。

仓库地址:baranchen/ingress-nginx

与上游的差异

上游最后版本 (v1.15.1)社区分支 (v1.30.2)
NGINX1.27.11.30.2 (stable)
OpenSSL3.5.x3.5.6
CVE 修复10 个

安全修复

NGINX(1.27.1 → 1.30.2)

CVE严重程度描述
CVE-2026-42945严重ngx_http_rewrite_module 堆缓冲区溢出(NGINX Rift)
CVE-2026-9256缓冲区溢出漏洞
CVE-2026-28755Stream 模块 OCSP 结果绕过
CVE-2026-1642SSL 上游注入
CVE-2025-53859SSL 相关漏洞
CVE-2025-23419TLSv1.3 SNI 会话恢复绕过

Ingress-NGINX 控制器

CVE严重程度描述
CVE-2025-1974严重 (9.8)IngressNightmare — 未认证远程代码执行
CVE-2025-24514中 (6.5)验证准入控制器拒绝服务
CVE-2025-1097IngressNightmare 攻击链 — 认证方式注入
CVE-2025-1098IngressNightmare 攻击链 — 配置注入

迁移方法

直接替换,无需修改任何 Ingress 配置。

kubectl

  kubectl apply -f https://raw.githubusercontent.com/baranchen/ingress-nginx/main/dep

loy/static/provider/cloud/deploy.yaml

Helm

  helm install ingress-nginx charts/ingress-nginx \
    --set controller.image.registry=ghcr.io/baranchen/ingress-nginx \
    --set controller.image.tag=v1.30.2

NGINX 1.27.1 → 1.30.2 升级要点

  • 1.27.2 — SSL 证书缓存、ssl_session_log 指令
  • 1.27.3 — Upstream 服务器 resolve 参数
  • 1.27.4 — CVE-2025-23419 修复
  • 1.27.5 — QUIC CUBIC 拥塞控制
  • 1.28.0 — 稳定分支
  • 1.30.0 — HTTP/2 上游代理、upstream 粘性会话、Early Hints (103)
  • 1.30.2 — 最新稳定版

后续计划

  • 跟进 NGINX 后续 stable 版本更新
  • 修复已知技术债
  • 社区反馈驱动的新功能

欢迎在 GitHub Issues 提交问题和建议,也欢迎贡献代码!