Docker Healthcheck 设计指南:让健康检查反映真实可用性

Docker Healthcheck 设计指南:让健康检查反映真实可用性

进程还在运行,不代表服务能够处理请求。健康检查应验证关键路径,但也不能过重,否则检查本身会成为负担或造成误判。

1. 区分存活与就绪

存活检查回答进程是否需要重启,就绪检查回答是否应该接收流量。两者失败后的处理方式不同。

2. 选择轻量端点

健康端点应快速返回,不执行大查询或外部网络请求。可检查必要的数据库连接,但应设置严格超时。

3. 合理设置间隔与容忍

根据启动耗时设置 start_period,用 retries 过滤短暂抖动。检查频率过高会增加负载,过低则延迟故障发现。

4. 记录失败原因

健康端点和容器日志应提供可区分的状态,如数据库不可用、迁移未完成或磁盘只读,便于告警后定位。

常见误区

  • 只检查端口是否打开
  • 健康检查包含昂贵查询
  • 启动阶段立即判失败
  • 失败就无限自动重启

执行检查清单

  • 检查覆盖核心请求路径
  • 单次执行足够快
  • 超时和重试合理
  • 失败原因可观测

总结

好的健康检查既不粉饰故障,也不过度敏感。它应为流量调度和人工排错提供可信信号。

上一篇 环境变量与密钥管理:避免把密码写进 Compose 文件
下一篇 Docker 网络排错:容器互通、DNS 与端口映射一次讲清

探索站点内容

搜索文章、标签、分类

热门文章

暂无文章