Kubernetes 的 liveness probe (存活探针) 检查失败。具体分析如下:
错误详情
Liveness probe failed: Get "http://xxxx/health": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
主要原因
这个错误说明 Kubernetes 尝试访问 Pod 的健康检查端点,但请求超时了。可能的原因包括:
- 应用程序没有响应 - 应用可能已经挂起、死锁或过载
- 健康检查端点未实现 - 应用没有正确实现
/health端点 - 超时设置过短 - liveness probe 的超时设置可能过短,应用来不及响应
- 网络问题 - Pod 内部网络问题导致无法访问健康检查端点
- 应用资源不足 - CPU 或内存不足,导致应用响应缓慢
解决建议
-
确认网络情况(源端到目的端网络是否正常)
-
检查应用日志 - 查看应用日志了解为什么健康检查端点没有响应
-
验证健康检查端点 - 确认应用确实实现了
/health端点并能正常响应 -
调整 probe 参数:
livenessProbe: httpGet: path: /health port: 8888 initialDelaySeconds: 30 # 增加初始延迟 timeoutSeconds: 5 # 增加超时时间 periodSeconds: 10 # 调整检查频率 -
检查应用资源使用情况 - 确认应用没有资源瓶颈