健康检查与回滚¶
更新命令成功不等于应用可用。健康检查用于验证更新结果;回滚是操作员确认后的独立操作,更新或探测失败不会自动回滚。
选择健康检查¶
当前普通更新流程中的更新后探测用于 Docker / Podman 单容器。分组目标不能因界面或适配器存在探针配置就视为已经接入完整流水线,详见支持矩阵。
| 策略 | 适用情况 |
|---|---|
| 自动 | 优先使用运行时能力,作为首次配置的选择 |
| 运行时原生 | 容器已有 healthcheck;无 healthcheck 时的运行状态不等于业务就绪 |
| 手动 HTTP | 有明确的公网健康端点,需要检查状态码或响应内容 |
| 手动 TCP | 只需确认指定主机端口可连接,不验证应用协议 |
| 关闭 | 自行在外部验证服务,不以探测结果决定运行状态 |
HTTP 主机必须解析为公网地址;HTTP 端口允许 80/8080,HTTPS 允许 443/8443/9443。不跟随重定向。状态码未指定时按实现接受 200–399,但重定向响应仍会被拒绝;建议显式填写期望值,如 200,204。
默认自动检查使用等待期 15 秒、单次超时 10 秒、间隔 5 秒和探测窗口 180 秒。服务启动慢时调整等待期和窗口;探测窗口不包含前置等待期。失败策略可标记为失败或降级,均不会撤销已完成的更新。
快照与保留¶
支持的破坏性更新会在变更前捕获重建所需配置,见支持范围。快照不保证恢复容器 / Pod ID,也不包含持久卷、业务数据库或应用的数据迁移结果。
在执行器快照历史中选择目标快照并核对时间和镜像。锁定的快照不参与自动清理,也不能直接删除;使用中的快照受回滚占用保护。数量设置见系统设置。
列表和详情 API 提供完整性状态:
| 状态 | 含义 |
|---|---|
verified |
内容与保存的格式版本、SHA-256 和大小元数据一致 |
legacy_unverified |
旧快照没有校验元数据,不等于已损坏,也不等于已验证 |
invalid |
校验失败,不能用于恢复 |
新快照的规范化 JSON 最大为 2 MiB。SHA-256 是一致性校验,不是数字签名;它不能防御同时修改内容和摘要的数据库写入者。
回滚前预检(API)¶
目前没有专用预检按钮。使用管理员 JWT 调用;RT_BASE 为实例外部地址(包含部署子路径),EXECUTOR_ID 和快照 ID 换成实际值:
curl --fail-with-body -X POST \
"$RT_BASE/api/executors/$EXECUTOR_ID/rollback/preview" \
-H "Authorization: Bearer $RT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"snapshot_id": 42}'
省略请求体时选择最新快照。检查 snapshot_valid、integrity_status 和 validation_error;请求成功本身不代表验证通过。预检不创建执行记录、不占用快照、不修改运行时。
预检只验证快照完整性与适配器兼容性,不模拟真实恢复,也不保证镜像仍可拉取、业务数据兼容或随后执行一定成功。
执行恢复¶
- 暂停可能触发新更新的自动策略,核对实际运行状态。
- 确认应用支持降级,并备份受影响的应用数据。
- 选择可用快照,完成预检后在执行器详情中手动回滚。
- 查看回滚运行记录,并独立验证应用健康。