Traefik v2 → v3 迁移指南
从 Traefik v2 迁移到 Traefik v3
简化的迁移过程
Traefik v3 引入了最少的破坏性变更,并在路由配置中保持与 v2 语法的向后兼容性,提供渐进式的迁移路径。
通过 Traefik v3,我们引入了从 v2 简化的转换过程。已对安装配置中的特定选项做出最小破坏性变更,并确保路由配置中的 v2 语法向后兼容。这将提供渐进式采用 v3 语法的路径,允许用户逐步迁移他们的 Kubernetes Ingress 资源、Docker labels 等到新格式。
迁移概览
迁移过程由三个渐进式步骤组成,旨在最小化风险并确保平稳过渡。
迁移步骤
- 第 1 步:准备配置并测试 v3
- 第 2 步:将生产实例迁移到 Traefik v3
- 第 3 步:渐进式迁移路由配置
第 1 步:准备配置并测试 v3
配置更新
审查并更新安装配置
检查 Traefik v3 带来的安装配置变更 和操作变更。相应地修改你的配置。
启用 v2 兼容模式
添加以下配置以保持 v2 语法兼容性:
yaml
# 安装配置测试环境验证
在测试环境中完整测试 v3:
- 启动 v3 实例
- 应用现有配置
- 验证所有路由工作正常
- 测试 TLS 终止、限流、认证等
- 监控关键指标
第 2 步:将生产实例迁移到 Traefik v3
准备工作
- 备份所有配置
- 准备回滚计划
- 通知相关团队
- 准备监控告警
蓝绿部署
推荐使用蓝绿部署:
- 部署 v3 实例:在生产环境部署 Traefik v3,但不切换流量
- 并行运行:v2 和 v3 并行运行
- 验证 v3:将测试流量引导到 v3
- 逐步切换:将部分生产流量切换到 v3
- 完全切换:所有流量切换到 v3
- 退役 v2:v3 稳定后关闭 v2
第 3 步:渐进式迁移路由配置
路由配置变更
重要变更
- Provider 重命名:
kubernetes→kubernetesingress - API 路径变更:仪表盘路径变更
- 中间件选项:某些选项重命名
- CRD 重命名:某些 CRD 类别变更
渐进式迁移
v2 语法在 v3 中仍然兼容,因此可以:
- 保持现有配置:在 v3 中保持 v2 语法
- 逐个迁移:按重要性逐一迁移到 v3 语法
- 测试新配置:每次迁移后测试
- 清理旧配置:所有迁移完成后,删除 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 的商业支持。