首页/云/云与容器速查/CrashLoopBackOff 排查

CrashLoopBackOff 排查

容器反复崩溃后的退避重启:必须看 --previous 的日志拿崩溃现场,再看退出码与探针配置。高频原因:配置错误、依赖连不上、探针误杀、命令写错。

云与容器速查云更新于 2026-10-12
现场kubectl logs pod --previous --tail=200(当前实例常有空档)
状态kubectl get pod -o jsonpath 取 lastState.terminated.reason/exitCode
高频原因配置文件缺失、环境变量错、连不上 DB、OOM、命令路径错
探针误杀liveness 失败会重启:describe 里看 Unhealthy 事件
验证kubectl debug 或 exec 手动执行启动命令复现

排查命令

排查命令
kubectl logs web-1 --previous --tail=200
kubectl get pod web-1 -o jsonpath='{.status.containerStatuses[0].lastState.terminated}'
kubectl describe pod web-1 | grep -A3 -i "unhealthy\|back-off"
退避间隔会指数增长(10s→20s→40s…):修完配置别干等,删掉 Pod 让控制器立刻重建。

易错点

  • 只看当前日志:崩溃实例已没了,白看
  • 把 liveness 探得太激进:应用启动期被反复重启,误判代码问题

数据来源与参考

  • Kubernetes Docs:Pod Lifecycle(Container States)
  • Kubernetes Docs:Debugging Pods

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌