跳到主要内容

博客

Couchbase 使用 CAO 暂停门进行升级:支持友好的概述

使用 CAO 本机暂停门、运行状况检查和 XDCR 感知监控进行受控滚动升级

  • 阅读约 1 分钟
  • Updated

如果您支持 Couchbase 平台(或者当没有行为时您会收到传呼),升级可能感觉像是在“放手和希望”与“手动和冒险”之间进行选择。这篇文章抓住了一个务实的中间立场:控制滚动升级,用于在Couchbase 自治操作员 (CAO)下运行的 Couchbase 服务器,由 CAO 的本机spec.paused字段调整。

这是谁的

  • 技术支持/事件响应者:在交换重新平衡期间“正常”是什么样子以及什么被视为危险信号。
  • SRE / 平台工程师:可重复程序,具有预检检查、浸泡门和回滚触发器。
  • 数据库工程师:重新平衡期望、XDCR 行为和升级后验证。
  • 开发人员:您的平台在维护时段期间正在执行哪些操作(以及您应该发出警报的内容)。

典型 CAO 托管拓扑(概念性)

下图是操作手册的思维导图:操作员所在的位置、CouchbaseClusterCR 控制的内容以及在升级过程中应关联哪些信号。

Typical Couchbase on AKS topology

大创意:使用暂停门调整 CAO

CAO 通过交换重新平衡执行滚动升级。该运行手册特意添加了一个安全门:暂停节点之间的协调、稳定、验证运行状况,然后恢复。这样,如果节点 N 在交换后出现异常行为,您可以在节点 N+1 启动之前捕获它。

Paced upgrade loop

为什么暂停门值得

  • 更少的惊喜:将症状隔离到单个节点更改。
  • 更清晰的信号:将延迟、错误率、重新平衡状态和 XDCR 滞后与一次交换相关联。
  • 更安全的推出:在您调查时握住spec.paused=true,可以快速停止“传送带”。

升级过程中“好”的样子

  • Pod 映像:旧→新逐步;最好一次交换一个。
  • 集群阶段:在交换之间经常返回到Available;预计再平衡期间会出现短暂的过渡。
  • XDCR(如果启用):changes_left在重新平衡期间上升,然后在稳定期间耗尽。
  • 重新启动:新 Pod 从RESTARTS=0开始。任何增加都是暂停和调查的信号。

预检检查可在以后为您节省

在您进行任何操作之前,请确保集群为绿色(无主动重新平衡,无警告事件),备份是当前的和可恢复的,并且您已记录回滚映像标签。预先决定您的 XDCR 策略:在升级期间禁用以获得更安静的生产信号,继续在预生产中运行以练习实际行为,或使用第三个备用集群进行战略切换。

回滚现实检查

成熟运行手册大声说出的令人不安的事实:只有在至少一个节点仍保留在旧版本上时,回滚才有可能实现。一旦每个 Pod 都被交换并且集群完全重新平衡,“降级”就可以变成“从备份恢复”。这就是节奏很重要的原因:它可以让回滚窗口保持更长时间的打开状态。

Next steps