首页/系统与基础设施/自动化运维速查/集群成员变更的编排方法
配置管理与编排60 条

集群成员变更的编排方法

集群成员变更要按一次一个成员的节奏编排:先健康检查、再让新成员追平数据、观察一个完整周期后才承接流量,最后摘除旧成员并回收资源,期间冻结其他并发运维。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌‌​​‌​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌​‌‌​‌​‌‌​​​‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​​‌‌​‌‌​‌​​​​‌‌​‌​​‌​‌‌‌​​​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

集群成员变更的编排方法是什么

集群成员变更指加节点、摘节点、替换节点的操作,必须按「一次只动一个成员」的节奏编排,因为多数一致性算法在任何时刻只容忍少数成员处于变更中。标准流程是:先确认集群整体健康(无降级副本、无正在进行的修复任务),再让新成员追平数据,追平后才允许它承接流量,最后摘除旧成员并回收资源。变更期间应冻结其他并发运维,避免两类变更叠加后无法判断因果。

基本信息

适用对象一致性集群、数据库副本组、消息队列集群
变更节奏一次一个成员,逐步验证
前置条件集群健康、副本数充足、无进行中的恢复
数据前提新成员数据追平后才切流量
并发约束变更窗口内冻结滚动升级等其它运维

典型使用场景

  • 扩容:增加成员以承接流量增长,先加后配权重
  • 故障替换:用新节点顶替故障硬件的角色
  • 退役:旧机型或旧机房节点有序退出
  • 故障域均衡:把成员跨机架或跨可用区重新分布
  • 调整副本数:先加后减,避免过程中出现容量降级

单成员变更节奏示意

单成员变更节奏示意
# 1) 健康检查:确认无降级副本、无正在进行的恢复任务
# 2) 加入新成员,等待数据追平到延迟接近零
# 3) 观察一个完整周期(至少覆盖一次备份或业务高峰)
# 4) 确认新成员稳定后再摘除旧成员
# 5) 最后回收旧成员的存储、网络与监控配置
# 全程一次只动一个成员,中途不并行其他运维动作

变更步骤与放行条件

步骤目的放行条件
集群健康检查确认有余量承受变更无降级副本,无进行中修复
新成员加入建立数据副本数据追平延迟稳定在阈值内
观察期验证长期稳定性覆盖完整业务周期无异常
旧成员摘除释放资源确认无流量且数据已迁移
资源回收清理残留监控与备份配置同步更新
成员数与容错度的关系由具体一致性协议决定,多数派仲裁下可容忍的失效数随成员数变化。变更前先算清当前允许同时失效几个成员,再决定是否可以并行推进多步;具体参数以对应产品官方文档为准。
不要为省时间并行变更多个成员。并行变更期间若再发生一次意外节点故障,可能直接失去多数派,集群转入停写甚至需要人工恢复。

易错点

  • 新成员尚未追平数据就纳入读写服务,出现读延迟抖动与数据不一致
  • 并行变更多个成员,叠加一次意外故障后失去多数派仲裁能力
  • 成员变更与业务高峰重叠,扩容消耗的带宽与磁盘性能反而拖慢线上
  • 摘除成员前未确认数据已完全迁移,形成永久数据缺口
  • 变更期间未冻结其他运维,滚动升级与成员变更互相干扰后难以定位根因

数据来源与参考

  • etcd 官方文档:集群成员管理
  • Apache ZooKeeper 官方文档:动态重配置
  • Raft 一致性算法论文(成员变更章节)

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/cluster-membership-change-orchestration.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌‌​​‌​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌​‌‌​‌​‌‌​​​‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​​‌‌​‌‌​‌​​​​‌‌​‌​​‌​‌‌‌​​​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​