Skip to content

Traefik 迁移文档 - 跨版本迁移步骤 ​

迁移:版本之间的必要步骤 ​

本指南提供了在不同 Traefik v3 版本之间升级的详细迁移步骤。每个部分都涵盖了平稳过渡所需的不兼容变更、已弃用项和配置更新。

v3.7.3 ​

Kubernetes Gateway API Provider ​

从 v3.7.3 开始,Kubernetes Gateway API Provider 使用的 Kubernetes 客户端的 QPS 和 Burst 值分别增加到 50 和 100(即 Kubernetes 客户端默认值的 10 倍)。

Kubernetes Gateway API Provider 会大量写入状态以遵守 Kubernetes Gateway API 规范。此变更可避免与 Kubernetes API 速率限制相关的性能问题,这可能在构建新路由配置时增加设置时间。

这些值可以通过 kubernetesGateway.qps 和 kubernetesGateway.burst Provider 选项进行配置。

BasicAuth 中间件 ​

从 v3.7.3 版本开始,BasicAuth 中间件需要非空的用户配置才能成功构建。 以前,该中间件可以成功构建,但总是对任何请求返回 401 状态码。 现在,如果发生错误,任何使用它的路由器都将被卸载。对于相同的请求,将返回 404 状态码,而不是 401 状态码。

StripPrefix 和 StripPrefixRegex 中间件 ​

从 v3.7.3 版本开始,StripPrefix 中间件和 StripPrefixRegex 中间件在剥离配置的前缀生成的路径与其规范化形式不同时(即包含 . 或 .. 段的路径,这些段会被规范化折叠)会拒绝请求(400 Bad Request)。

这可以防止被剥离的路径被上游服务解释为不同的资源。

完整迁移指南 ​

请访问 Traefik 官方迁移文档 获取每个 v3.x 版本的详细变更。

主要 v3 版本 ​

  • v3.0.0:v3 的初始版本,从 v2 升级需要大量变更
  • v3.1.0:引入了 TraefikService
  • v3.2.0:增加了对 OTel 指标的支持
  • v3.3.0:增加了对 Gateway API v1.1 的支持
  • v3.4.0:增加了对 OIDC 多个配置的支持
  • v3.5.0:改进了健康检查
  • v3.6.0:增加了对 Kubernetes 1.32 的支持
  • v3.7.0:增加了对 Gateway API v1.5 的支持

迁移路径概览 ​

从 v2.x 迁移到 v3.x ​

主要变更:

  1. Kubernetes Provider 重命名:

    • kubernetes → kubernetesingress
    • kubernetescrd → kubernetescrd (保持)
  2. API 路径变更:仪表盘路径变更

  3. 中间件选项:某些中间件选项重命名

  4. 配置文件格式:不再支持某些旧格式

从 v1.x 迁移到 v3.x ​

v1 配置完全不兼容 v3。必须完全重写配置。

主要变更:

  • 路由规则语法完全不同
  • 没有 Frontends/Backends 概念,改为 Routers/Services
  • TLS 配置从路由级别改为 TLSOptions

从其他 Ingress Controller 迁移 ​

  • 从 NGINX Ingress Controller 迁移:Traefik 支持 NGINX annotations,可平滑迁移
  • 从 HAProxy 迁移:使用文件 Provider 重写配置
  • 从其他 API Gateway 迁移:使用文件 Provider 重写配置

迁移最佳实践 ​

  1. 阅读 CHANGELOG:升级前仔细阅读 CHANGELOG
  2. 测试环境验证:先在测试环境升级
  3. 分步升级:避免跨多个主版本升级
  4. 备份配置:升级前备份所有配置
  5. 监控关键指标:升级后密切监控关键指标
  6. 回滚计划:准备回滚计划

在生产环境使用 Traefik OSS?

如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。

基于 MIT 协议发布