目录
灰度发布与自动回滚
配置和节点程序的变更都不是一次推给所有节点,而是分阶段下发,出问题时在影响面最小的阶段停下来。
配置变更:三阶段下发
网站、规则等配置变更按 1 个节点 → 10% 节点 → 全部节点 推进。只有当前阶段的每个节点都安装完成、且没有新的告警,才会进入下一阶段。某个节点加载失败时,发布停在当前阶段并发出告警。
- 短时间内的多次改动会在静默 10 秒后合并成一个版本,避免连续保存产生一连串小版本。
- 可以暂停自动发布 30 分钟,用来配合变更窗口。
在「系统管理 › 系统升级」的节点页签,「配置发布」一栏可以看到正在下发的版本和所处阶段,并能手动干预:
| 操作 | 作用 |
|---|---|
| 立即推进 | 不等待,直接进入下一阶段 |
| 暂停 / 继续 | 暂停自动推进,或继续 |
| 回上一版 | 把配置回到上一个版本 |
| 本次直接全量 | 跳过 1 个节点与 10% 两个阶段,直接下发全部节点;需要勾选确认项,并会记入操作日志 |
注意 「本次直接全量」放弃了灰度保护,只用于紧急修复。
节点本地自动回滚
新配置生效后的 5 分钟内,节点会盯着自身的健康:5xx 比例、worker 进程崩溃或规则预算明显恶化时,节点自己回到上一版配置,并拒绝再接收这一版。主控收到后发出「节点自动回滚配置」告警,发布停在当前阶段,不再继续扩大。
节点列表和节点编辑页会显示「配置已回滚」,并写明版本和原因。排除原因后,点「重新下发」把同一份配置再推一次。
节点程序升级:灰度与回退
在「系统管理 › 系统升级」升级节点程序时同样分阶段:先升第一个节点,再升 10%,最后升全部,每个阶段必须全部成功才进入下一阶段。每次升级生成一张升级单,在进行中的升级单上可以「暂停」「继续」,或点「回退」:停止这张升级单,已发出的节点各自回到升级前的版本。
升级是整包替换并原子切换:新配置检查不过、或 nginx 没有就绪,节点自动切回旧版本并照常服务。节点程序要退回时,用升级单上的「回退」;配置要退回时,在配置发布处用「回上一版」。
升级主控
升级主控、回退主控都在「系统管理 › 系统升级」。可以勾选「升级主控时自动升级节点」,主控升完自动带上节点,节点同样按灰度阶段推进。主控升级还在排队或安装中时,可以点「停止升级」;已开始切换的会做完。详细步骤见在线升级。
提示 遇到节点自动回滚时,先看告警里的版本与原因,不要立刻「重新下发」;确认问题已在配置里修好,再重新下发。