跳到正文
Træfɪk

迁移指南:从 v2 到 v3

如何从 Traefik v2 迁移到 Traefik v3。

简化的迁移流程

Traefik v3 尽量减少不兼容变更,并在路由配置中保持对 v2 语法的兼容,支持逐步迁移。

Traefik v3 为从 v2 升级提供了更简洁的过渡流程。安装配置中只有少数特定选项发生不兼容变更,路由配置则保持对 v2 语法的向后兼容。因此可以逐步采用 v3 语法,将 Kubernetes Ingress 资源、Docker 标签等逐项迁移到新格式。

迁移概览

迁移由三个渐进步骤组成,旨在降低风险、平稳过渡:


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

准备阶段

本步骤着重更新安装配置,并开启向后兼容,以建立安全的测试环境。

配置更新

检查并更新安装配置

检查 Traefik v3 带来的安装配置与运行行为变更,并相应调整配置。

启用 v2 兼容模式

加入以下配置,保持 v2 语法兼容:

# install configuration
core:
  defaultRuleSyntax: v2

向后兼容

这段安装配置会将 v2 格式设为默认规则匹配器语法。

测试阶段

启动测试环境

  1. 使用更新后的配置启动 Traefik v3。
  2. 检查启动日志中是否有错误。
  3. 测试到应用的路由。

验证清单

  • ✅ Traefik 启动时没有错误日志。
  • ✅ 全部路由正常工作。
  • ✅ 可以通过 Traefik 访问应用。

可以进入下一步

如果测试期间没有错误日志,就可以继续;否则,应按日志中提示的其余迁移选项处理。

测试实例能够正常启动并将请求路由到应用后,进入下一步。


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

生产环境迁移

这是迁移生产环境的关键步骤,必须做好监控和回滚准备。

迁移策略

渐进部署

强烈建议使用渐进迁移策略,将生产实例迁移到 v3,例如 Kubernetes 滚动更新机制。

必要准备

关键要求

  • ✅ 针对入口流量的实时监控方案(监控指南)。
  • ✅ 可立即执行的回滚计划。
  • ✅ 迁移窗口内团队成员可响应。

执行迁移

迁移期间:

  1. 持续监控: 观察入口流量,检查错误或异常。
  2. 准备回滚: 保持回滚流程随时可立即执行。
  3. 使用调试日志: 利用调试日志和访问日志了解出现的问题。

验证步骤:

  • 监控响应时间和错误率。
  • 确认所有关键应用路径正常。
  • 检查 SSL/TLS 终止是否正常。
  • 验证中间件行为。

迁移完成

所有 Traefik 实例更新完成后,就已运行在 Traefik v3 上。


步骤 3:逐步迁移路由配置

本步骤不必立即执行

Traefik v3 兼容 v2 格式的路由配置,因此本步骤可以稍后再做。启用 Traefik 日志,可以在使用已弃用选项时获得提示。

迁移过程

检查路由配置变更

检查路由配置的变更,了解需要更新的内容。

逐步迁移路由器

  1. 选择一个路由器先迁移,从非关键服务开始。
  2. 为该路由器切换到 v3 语法。
  3. 充分测试,确保入口流量不受影响。
  4. 部署并验证更新后的资源。
  5. 验证完成后,移除旧 v2 资源。
  6. 对每个其余路由器重复执行。

迁移最佳实践

迁移策略

  • 从开发或预发布环境开始。
  • 每次迁移一个服务。
  • 每次迁移充分测试后再继续。
  • 详细记录变更内容。

最终配置清理

所有 Ingress 资源迁移到 v3 语法后,移除兼容配置:

# Remove this from install configuration
core:
  defaultRuleSyntax: v2  # ← Delete this entire section

🎉 迁移完成!

现在已经完整迁移到 Traefik v3,可以使用所有新功能和改进!

迁移后验证

最终清单:

  • ✅ 所有路由器使用 v3 语法。
  • ✅ 已关闭 v2 兼容模式。
  • ✅ 日志中没有弃用警告。
  • ✅ 所有应用正常工作。
  • ✅ 性能指标稳定。

在生产环境使用 Traefik OSS?

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

为 Traefik OSS 增加 API 网关能力快捷且平滑,无需推倒重来,现有配置也会完整保留。请通过这个简短视频了解实际效果。


版权所有 © 头文件软件工作室

文档由 HeadFile Studio 翻译。

Traefik v3.7 中文快照 · 原文版权归 Traefik Labs 及贡献者所有 · MIT 许可证