跳到主要内容
版本:1.0.0(开发版)

维护运行中的部署

围绕剩余容量与工作所有权安排维护。重启的目标是在替换一个进程时,保留所选写入约定、可恢复状态和应用完成行为。拓扑相关步骤见 HA 部署Kubernetes 操作

日常观察

范围观察内容需要处理的情况
路由与身份预期 Broker 组/副本、可达的公布地址、当前 Controller Leader注册消失、身份异常变化,或路由不符合目标拓扑
消息进度发送结果、逐队列消费推进、重试/DLQ/POP 活动完成停滞,或积压接近保留数据边界
存储剩余字节、分段增长、磁盘延迟、清理活动、外置根目录与卷健康余量下降,持久化/恢复工作落后
复制同步成员关系、当前写权限、持久化进度所选写入要求失去容量,或追平不再推进
生命周期与遥测探针状态、任务/关闭错误、导出健康、活跃 TLS/ACL 配置进程健康与应用实际路径不一致

结合 Admin监控比较一段时间内的变化。日志、指标应有独立的保留预算,避免诊断数据占用消息存储的应急空间。

有计划地调整保留策略

本地存储以小时为单位使用 fileReservedTime,通过 deleteWhen 指定定时清理。磁盘压力和 cleanFileForciblyEnable 也会影响删除行为。相关磁盘比例经过本地后端配置归一化,原始值不一定就是有效阈值。

清理面向满足条件的文件、分段,不以某个应用的业务完成记录为单位。不能把配置的保留期理解为磁盘压力下所有未消费消息都必然保留。缩短保留期前,比较消费、重放、备份以及延迟/事务处理仍需的最早数据。

变更后观察实际最小队列偏移量与磁盘用量。恢复旧配置不会恢复已删除数据。不要通过移除活跃 CommitLog、索引、定时或 RocksDB 文件来替代受支持的清理。

排空一个节点

  1. 确定准确的进程/Pod、身份、当前角色、数据根目录,以及替换时使用的命令、配置。
  2. 确认剩余 Controller 多数派和 Broker 复制/写入能力。所选拓扑无法在重启期间保持写入时,应安排暂停写入,不假定持续可用。
  3. 在应用、部署支持的位置停止向受影响路径分配新工作,等待已接纳操作与业务工作收敛,考虑不确定发送、POP 回执、待决事务和保留响应流。
  4. 通过进程管理器或部署生命周期请求正常关闭。Core chart 在终止前调用 /drainz,并在 Pod 宽限期内安排服务关闭预算。
  5. 检查关闭结果,确认旧所有者已停止,再重新打开同一存储。取消和超时不能证明阻塞操作已经完成。

停止消费者可能使其他消费者收到尚未完成的工作。维护期间仍需要业务幂等,以及对应模式的偏移量/ACK 完成。排空一个 Proxy 不会自动排空所有直接连接 Broker 的应用。

按拓扑重启

组件操作边界
NameServer每次替换一个,确认客户端、Broker 能使用其他已配置 NameServer,并观察注册收敛
默认 HA 副本保留身份和存储,重启后观察追平,再进行下一次变更
默认 HA 主节点存在副本不代表具备 Controller 自动提升能力;安排写入中断,或另行采用受支持的角色变更流程
Controller 模式 Broker遵循当前 Controller 权限、同步成员关系与追平结果,不强制旧主节点恢复写入
Controller使用当前成员关系和新鲜复制观察,保留仲裁与稳定节点身份;chart 部署使用随附重启工具
Proxy移除流量并排空实例,替换后检查入站和下游行为,再恢复流量

两个副本且要求两者参与的组,在一个副本不可用时没有额外同步写入容量,其 chart PDB 因而没有主动中断余量。不要通过直接删除 Pod 绕过这一事实,应有意调整维护计划或受支持的拓扑。

StatefulSet OnDelete 更新需要显式受控替换。修改配置不等于 Controller 成员变更。不要重叠执行计划重启;每次重新评估当前 Leader 和副本健康,先前观察成功不能预留未来可用性。

轮换凭据与证书

安全轮换更新接收方材料,在支持重叠时迁移调用方,执行实际重载/重启路径,再验证新访问和旧访问拒绝。Core chart 文档规定轮换后重启;Proxy TLS 还支持自身经验证的文件代次重载。Secret 已更新或出现 watcher 日志,不能证明全部调用方都使用了新材料。

保护 ACL 文件的同时,保护本地认证快照与备份。如果拆分观察能帮助定位故障,不要在同一步同时修改凭据和无关的拓扑、存储设置。

恢复服务

确认预期身份与角色、可达路由、实际消息完成、消费推进、复制追平和遥测导出。重启副本的 Ready 状态不能替代当前写策略要求的持久化进度。

替换实例无法恢复或预期路径失败时,停止继续更新。保留日志与原状态,随后按故障排查升级回退处理。不要反复重启全部 peer,或删除身份、状态来制造干净启动。

本文描述操作行为,未声明已完成多节点维护演练或提供可用性保证。

源码索引

本地清理归一化清理配置core chart 生命周期与重启运行时所有权