跳转到内容

Cluster 成员节点的滚动升级

  1. 为什么滚动升级,「安全」意味着什么 —— 升级窗口内的 quorum 计算:3 节点集群逐个升级时, 每有一个成员下线就处于零冗余状态;5 节点集群则全程仍可再容忍一次故障。
  2. 升级前检查 —— 集群健康(所有成员 ACTIVE、无快照进行中)、近期快照已完成、archive 磁盘 余量充足、版本兼容性已验证(新旧代码的线上协议 + 序列化状态)。
  3. follower 优先的顺序 —— 逐个升级 follower;leader 最后升级,且通过受控的领导权交接, 而不是等超时触发选举。
  4. 单节点流程 —— 排空、停止、升级、重启、等待追平(成员重放日志/快照后重新加入; 用集群计数器核实后再动下一个节点)。
  5. leader 交接 —— 优雅地让 leader 主动让位 vs. 等选举超时,以及交接期间客户端看到什么 (ingress 重定向、会话重连)。
  6. 应用/状态机版本化 —— 在复制的确定性状态机上升级业务逻辑:新代码必须与旧代码对同样的 日志条目重放出完全一致的结果;按日志位置做逻辑开关(feature flag on log position)。
  7. 中止条件与回滚 —— 每一步之前检查什么,节点无法重新加入时如何退回。
  8. 核验 —— 每一步的计数器与检查项(commit position 在前进、成员状态、NAK/错误计数安静), 以及升级后的冒烟测试。