综合 Traefik Proxy v3.7 发布:Ingress NGINX Provider 转正,85+ annotation 原样可用

2026-10-05 21:02:54

Traefik Proxy v3.7 发布:Ingress NGINX Provider 转正,85+ annotation 原样可用

Traefik Proxy v3.7(代号 Langres)已发布。

  • 发布说明:
  • 仓库:
  • v3.6.14 迁移指南:

Ingress NGINX 迁移:Provider 从实验特性转正

v3.7 原生支持 85+ 个 Ingress NGINX annotation,experimental flag 被去掉,Ingress NGINX Provider 正式成为 first-class provider。

目标是把 Traefik 做成 Ingress NGINX 的 drop-in 替代:带上现有 manifest,启用 provider 就能跑,不需要改 YAML、不需要转换 annotation、也不需要做一次性的大爆炸切换。

静态配置:

providers:
kubernetesIngressNginx:
enabled: true
# 其余为静态配置

该能力由 IBM Cloud、Nutanix、OVHcloud、SUSE、TIBCO 等验证。

snippet 怎么处理:不拒绝,也不照抄

v3.7 部分支持 configuration-snippet、server-snippet、auth-snippet 这三类 snippet。

在 Ingress NGINX 里,snippet 的语义是把用户提供的原始 Nginx 指令原样粘贴进生成的 nginx.conf。也就是说用户输入会直接进入 controller 的运行时配置,注入面很大——Kubernetes 维护者把 snippet 列为推动 Ingress NGINX 退役的「serious security flaws」之一。

Traefik 没有走两个极端:

  • 不直接拒绝。拒绝会破坏迁移路径,drop-in 替代也就无从谈起。
  • 不照抄粘贴。Traefik 把 snippet 内容解析成结构化输入,只映射一份经过挑选的安全指令允许列表:header 改写、rewrite、client IP 与 URI 变量的插值;允许列表之外的指令一律拒绝。

一个结构性差异是:Traefik 本身不生成原始配置文件,因此不存在「可以把原始文本粘贴进去」的位置。

其他新增内容

  • middlewares on services
  • 完整支持 Gateway API v1.5
  • dashboard 新增 certificates 视图
  • Retry 中间件:支持按 HTTP 响应状态码重试、可配置每次尝试的超时、可针对非幂等方法
  • Failover service:支持按响应状态码触发

升级前注意:v3.6.14 的 breaking change

v3.6.14 有一个 breaking change,升级前先看迁移指南。

#12976 的修复让 Chain middleware CRD 遵守 allowCrossNamespace 配置。在此之前,Chain 中间件可以跨 namespace 引用中间件,而完全不看 allowCrossNamespace 的值。

从 v3.6.14 起,当 allowCrossNamespace=false(默认值)时,Chain 引用其他 namespace 的中间件会被拒绝,并记录错误日志。依赖旧(错误)行为才能工作的配置,需要先做调整再升级。

复制全文 生成海报 Traefik Ingress 运维

推荐文章

程序员茄子在线接单