编排中的健康检查门禁是什么
健康检查门禁是编排流程里的判定点:每完成一批变更后,用探针或校验脚本确认目标是否真的可用,通过才放行下一批,不通过则暂停、告警或回退。它把「动作执行成功」与「业务可用」分开——命令返回成功只说明指令发出去了,门禁负责确认服务确实起来了。门禁通常分层组合:进程与端口存活、能否承接流量、业务级抽查(真实请求、数据一致性、路由可达性)。越靠后的检查越贴近用户感受,也越慢、越需要慎用。
基本信息
| 检查层级 | 进程存活、端口监听、就绪可服务、业务级校验 |
|---|---|
| 判定方式 | 阈值 + 连续成功次数 + 最短观察时长 |
| 失败动作 | 暂停编排、回退当前批、触发告警 |
| 常见实现 | 容器探针、负载均衡健康检查、编排器等待与轮询模块 |
| 关键输入 | 历史基线,用于区分正常波动与真实回归 |
典型使用场景
- 应用发布后确认端口可连、健康接口返回正常,再继续下一批
- 负载均衡摘挂节点前后校验:先摘流量再变更,校验通过再放回
- 数据库主从切换后验证复制延迟、连接数与只读状态
- 网络设备变更后用可达性测试与路由表校验确认转发恢复
- 证书轮换后做一次真实握手,验证证书链与域名匹配
探针与脚本校验示意
探针与脚本校验示意
# 就绪探针:只有探测通过,负载均衡才把流量放进来
readinessProbe:
httpGet: {path: /healthz, port: 8080}
initialDelaySeconds: 10 # 覆盖冷启动最慢实例
periodSeconds: 5
failureThreshold: 3 # 连续 3 次失败才判定不健康
# 编排脚本侧再做一次独立校验,失败立即以非零码退出
# curl -fsS -m 3 http://127.0.0.1:8080/healthz探针类型与误判风险
| 探针类型 | 检测什么 | 误判风险 |
|---|---|---|
| 存活探针 | 进程是否仍在运行 | 失败触发重启,阈值过低会造成重启风暴 |
| 就绪探针 | 能否承接流量 | 失败只摘流量,配置错误会让实例永远进不来 |
| 启动探针 | 启动阶段是否完成 | 缺失时慢启动应用会被存活探针反复打断 |
| 业务探针 | 端到端功能是否可用 | 耦合下游依赖,把下游抖动放大成整片故障 |
存活探针失败会触发重启,就绪探针失败只摘流量。把数据库、下游接口等外部依赖写进存活探针,会让一次下游抖动演变成整片实例被反复重启,故障范围被放大。
最常见的假通过来自阈值过松:失败一次即判定成功、观察时间短于应用启动耗时、探测端口恰好被上一个进程占用。门禁阈值应以历史数据中冷启动最慢的实例为基准,并保留连续失败次数要求。