Kubernetes Pod CrashLoopBackOff 的定位与修复
kubectl get pod 显示 CrashLoopBackOff,容器启动后很快退出,重启间隔逐步拉长。常见原因是应用启动失败、配置缺失、探针过严或 OOMKilled。
kubectl get pod <pod> -o wide
kubectl describe pod <pod>
kubectl logs <pod> --previous
kubectl logs <pod> -c <container> --previous
kubectl get events --sort-by=.lastTimestamp | tail -20
kubectl get pod <pod> -o jsonpath='{.status.containerStatuses[*].lastState}'
资源与探针:
kubectl get pod <pod> -o yaml | grep -A8 -E 'resources:|livenessProbe:|readinessProbe:|startupProbe:'
--previous 日志和 describe 的 Events,确认退出码和原因。startupProbe、放宽 initialDelaySeconds/failureThreshold。kubectl run 或临时 Pod 验证镜像入口和依赖连通性。kubectl — Pod 状态与日志k8s 分支的 pod / deployment 页面 — 对象细节合上页面,先回答,再展开对照。
kubectl logs <pod> --previous?--previous 能看到上一次退出的日志。再结合 describe 的 Events 确认退出码和原因。startupProbe,并放宽 initialDelaySeconds/failureThreshold。这样可以避免应用还没启动就被 liveness 探针重启。describe 的 Events 和 containerStatuses 的 lastState,确认是否 OOMKilled。若是,就调整 memory limit 或修内存问题。