Vitess 23.0.0 发布
Vitess 23.0.0 现已发布,这是 Vitess 的最新大版本,带来了新的默认设置、更好的运维工具以及更精细的监控指标。本次发布基于 22 版本的坚实基础,旨在让部署和可观测性更顺畅,同时继续自信地横向扩展 MySQL 工作负载。
对于生产环境中的 Vitess 用户,本次版本有多方面的意义:
-
默认升级:将默认 MySQL 版本升级到 8.4,确保部署具备未来兼容性。
-
更好指标:新增的可观测性让事务路由、分片行为和恢复动作更清晰,调试和告警更精准。
-
清理和废弃:移除旧指标和 API,简化监控,避免混淆。
-
运维强化:改进 VTOrc 和拓扑控制,降低大规模集群风险,提升安全边界。
Vitess 23 亮点
以下是需要了解的主要改动:
新默认版本
-
vitess/lite:latest 镜像的默认 MySQL 版本从 8.0.40 升级到 8.4.6。
-
VTGate 默认通告 MySQL 版本为 8.4.6(原为 8.0.40)。如果后端版本不同,请用 mysql_server_version 标志调整。
-
重要升级说明(针对 Operator 用户): 升级 MySQL 8.0 到 8.4 时,需:
仅在跨 8.0 → 8.4 时需要一次,详见官方发布说明。
-
在 YAML 的额外 .cnf 文件中添加 innodb_fast_shutdown=0。
-
应用配置并等待所有 pod 健康。
-
切换镜像到 vitess/lite:v23.0.0。
-
删除 innodb_fast_shutdown=0 并重新应用。
-
新增与改进的指标
-
VTGate 新增指标 TransactionsProcessed(维度:Shard、Type),统计按分片和事务类型处理的事务数量。
-
VTOrc 新增指标 SkippedRecoveries(维度:RecoveryName、Keyspace、Shard、Reason),跟踪跳过恢复的次数及原因。
这些改进增强了可观测性,帮助运维更细致地跟踪系统行为。
废弃与移除
-
VTOrc 指标重命名:DiscoverInstanceTimings 改为 DiscoveryInstanceTimings。
-
移除废弃的 VTGate 指标:QueriesProcessed、QueriesRouted、QueriesProcessedByTable、QueriesRoutedByTable。
-
移除 VTOrc API 端点 /api/aggregated-discovery-metrics。
拓扑与 VTOrc 增强
-
--consul_auth_static_file 标志现在要求 JSON 中至少包含一条凭证。
-
VTOrc 支持动态控制基于 EmergencyReparentShard 的恢复。
这些改动提升了集群管理的安全性和稳定性。
VTTablet 与 CLI / Docker 更新
-
托管 MySQL 配置默认改为 caching-sha2-password。
-
MySQL 时区环境变量传递改进。
-
gRPC tabletmanager 客户端错误处理更清晰。
-
Docker 镜像工作流及标志更新,保持一致性。
升级须知
-
检查自定义仪表盘:如果用到了被移除的指标,请更新到新指标(如 TransactionsProcessed)。
-
Operator 用户升级 8.0 → 8.4:请严格按照四步升级流程操作。
-
如果在 VTGate 中覆盖了 mysql_server_version,确保它与后端 MySQL 版本一致。
-
先在测试环境中验证涉及重亲和、恢复或 Consul 集成的改动。
未来展望
接下来,项目团队将继续推动 Vitess 发展:
- 深化对 MySQL 8.4 的兼容。
- 扩展 VReplication、MoveTables 和 Resharding 的可观测性。
- 持续改进 Operator 的可靠性和易用性。