升级 Valkey
通过在所属的 Valkey 资源上增加 spec.version 来执行升级。validating webhook 会拒绝版本降级。
2.0.0 产品支持 Valkey 7.2、8.1 和 9.1。源代码只能证明 webhook 会拒绝较低的目标版本;它既没有定义经过测试的源到目标矩阵,也不能证明顺序升级或跳级升级是安全的。在更改生产实例之前,请从交付的 release validation 中获取该矩阵。
开始前
- 确认该实例处于
Ready状态,并且没有正在运行的扩缩容、重启、访问、证书、调度或配置更改。 - 完成并验证外部备份或导出。Operator 没有集成的备份或回滚控制器。
- 检查应用程序和 module 与目标 Valkey 版本线的兼容性。
- 检查
spec.customConfigs,确认目标版本移除或变更的指令。 - 确认有足够的可调度容量,以便进行滚动 Pod 替换。
记录当前状态:
对于 Cluster 架构,还要从一个处于 Ready 状态的 Pod 验证 slot 和成员健康状况:
应用升级
示例:从 7.2 升级到 8.1。
监视高层级资源、Pods 和 Events:
在 Pods 正在替换或 phase 不是 Ready 时,不要再应用其他更改。
验证结果
读取期望值和最后记录的值,然后检查每个 server Pod:
status.lastVersion 会在高层级 reconciliation 期间从期望版本复制而来。它并不是对每个正在运行的进程的观测结果。请在每个 data Pod 上验证 image 和 INFO server 输出;在 Cluster 架构中,不要假设一个 Pod 代表每个 shard。
然后验证应用程序的读写、访问控制列表(ACL)认证、复制或 Cluster slot 覆盖率、适用时的故障转移发现以及 exporter 指标。
故障边界
不要将 spec.version patch 回之前的值;降级会被拒绝,并且对于持久化数据可能不安全。保留日志和 Events,停止进一步更改,并遵循产品支持恢复计划。降级需要单独创建一个兼容实例,并经过验证的数据迁移或恢复流程。
在检查命令、配置和运行时兼容性时,请使用目标版本对应的 command index 和 INFO reference。