Skip to content

Traefik v2 → v3 迁移指南

从 Traefik v2 迁移到 Traefik v3

简化的迁移过程

Traefik v3 引入了最少的破坏性变更,并在路由配置中保持与 v2 语法的向后兼容性,提供渐进式的迁移路径。

通过 Traefik v3,我们引入了从 v2 简化的转换过程。已对安装配置中的特定选项做出最小破坏性变更,并确保路由配置中的 v2 语法向后兼容。这将提供渐进式采用 v3 语法的路径,允许用户逐步迁移他们的 Kubernetes Ingress 资源、Docker labels 等到新格式。

迁移概览

迁移过程由三个渐进式步骤组成,旨在最小化风险并确保平稳过渡。

迁移步骤

第 1 步:准备配置并测试 v3

配置更新

审查并更新安装配置

检查 Traefik v3 带来的安装配置变更操作变更。相应地修改你的配置。

启用 v2 兼容模式

添加以下配置以保持 v2 语法兼容性:

yaml
# 安装配置

测试环境验证

在测试环境中完整测试 v3:

  • 启动 v3 实例
  • 应用现有配置
  • 验证所有路由工作正常
  • 测试 TLS 终止、限流、认证等
  • 监控关键指标

第 2 步:将生产实例迁移到 Traefik v3

准备工作

  • 备份所有配置
  • 准备回滚计划
  • 通知相关团队
  • 准备监控告警

蓝绿部署

推荐使用蓝绿部署:

  1. 部署 v3 实例:在生产环境部署 Traefik v3,但切换流量
  2. 并行运行:v2 和 v3 并行运行
  3. 验证 v3:将测试流量引导到 v3
  4. 逐步切换:将部分生产流量切换到 v3
  5. 完全切换:所有流量切换到 v3
  6. 退役 v2:v3 稳定后关闭 v2

第 3 步:渐进式迁移路由配置

路由配置变更

重要变更

  • Provider 重命名kuberneteskubernetesingress
  • API 路径变更:仪表盘路径变更
  • 中间件选项:某些选项重命名
  • CRD 重命名:某些 CRD 类别变更

渐进式迁移

v2 语法在 v3 中仍然兼容,因此可以:

  1. 保持现有配置:在 v3 中保持 v2 语法
  2. 逐个迁移:按重要性逐一迁移到 v3 语法
  3. 测试新配置:每次迁移后测试
  4. 清理旧配置:所有迁移完成后,删除 v2 语法

v3 新功能

迁移到 v3 后,可以利用:

  • TraefikService:高级服务定义(加权、镜像、故障转移)
  • 多层路由:父子路由层级
  • 路由器级可观测性:按路由器控制指标、日志、追踪
  • 新中间件:如 EncodedCharacters、ContentType
  • Gateway API v1.5:最新标准

常见问题

Q:v3 是否完全兼容 v2 配置?

A:大部分兼容。安装配置有少量破坏性变更,路由配置保持兼容。

Q:是否必须立即迁移到 v3?

A:。v2 仍然受支持,但 v3 是当前活跃版本,建议升级以获得新功能和安全补丁。

Q:如何回滚到 v2?

A:在完全切换到 v3 之前,保留 v2 实例的部署。如果出现问题,切换回 v2。

Q:v2 的 EOL 时间?

A:请参阅 Traefik 官方支持政策 获取最新信息。


在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布