pod readinessProbe未就绪503分析过程
事件日志
Readiness probe failed: HTTP probe failed with statuscode: 503
告警的含义
Pod 的 Readiness Probe 健康检查失败了,探针返回了 **HTTP 503 (Service Unavailable)**。
这意味着在 Kubernetes 看来,该容器还 没有准备好对外提供服务。因此:
- Pod 会被标记为 NotReady,不会被加入 Service 的 Endpoint。
- 应用的负载均衡或访问会被跳过该 Pod,直到探针通过。
常见原因
应用启动慢
- Pod 刚起来时服务还没 ready,就被 probe 探测了。
- 解决办法:增加
initialDelaySeconds或failureThreshold。
探针路径/端口错误
- readinessProbe 配置的
httpGet路径或端口和应用实际监听的不一致。
- readinessProbe 配置的
应用内部错误
- 服务确实返回 503,说明应用自己没准备好(比如依赖的 DB/Cache 没连上)。
负载过高
- 如果 CPU/Mem 不够,探针请求会被拒绝或返回 503。
排查步骤
检查 Pod 事件和日志
1
2kubectl describe pod xxxx -n px
kubectl logs xxxx -n px --previous确认 readinessProbe 配置
1
2
3
4
5
6
7readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
periodSeconds: 5
failureThreshold: 3看看是不是路径/端口写错了。
检查容器服务状态
Pod 内部 curl 一下 probe 地址:
1
kubectl exec -it xxxx -n px -- curl -v http://127.0.0.1:8080/healthz