Kubernetes Pod 排错实战:从 Pending 到 CrashLoopBackOff

举报
yd_259625967 发表于 2026/10/29 10:53:33 2026/10/29
【摘要】 面向 K8s 常见 Pod 状态异常,给出从 Pending、ContainerCreating 到 CrashLoopBackOff 的逐层定位路径与常用诊断命令。生产环境里,Pod 不健康是最高频的告警。本文把最常见的几类状态串成一条排障路径,配上手边常备的命令。Pending:调度器没给 Pod 安排节点。kubectl describe pod 看 Events,常见三类原因:节点资...

面向 K8s 常见 Pod 状态异常,给出从 Pending、ContainerCreating 到 CrashLoopBackOff 的逐层定位路径与常用诊断命令。

生产环境里,Pod 不健康是最高频的告警。本文把最常见的几类状态串成一条排障路径,配上手边常备的命令。

Pending:调度器没给 Pod 安排节点。kubectl describe pod 看 Events,常见三类原因:节点资源不够(Insufficient cpu/memory)、节点污点没容忍(node 有 taint 但 pod 没配 toleration)、PVC 没绑定成功(存储类或容量不足)。

ContainerCreating:调度成功但容器起不来。重点看拉镜像(是不是 tag 写错、私有仓库没配 imagePullSecrets)、挂载卷失败(PVC/ConfigMap/Secret 名字不对)、以及探针把容器卡死在启动阶段。

CrashLoopBackOff:容器反复崩溃重启。这是「应用自己有问题」。kubectl logs <pod> --previous 看上一次崩溃前的日志;如果日志都打不出来,kubectl exec 进去 strace -e execve /app 看进程到底卡在哪。

OOMKilled:退出码 137。describe 里会明确写 OOMKilled,多半是 limits.memory 设得比实际峰值低,或应用有内存泄漏。别一上来就加 limit,先用 top 观察实际曲线,再决定。

一条经验:排障顺序永远是「事件 → 日志 → 进容器」,由外到内。Events 是系统层,日志是应用层,进容器是最后手段(很多 CrashLoop 状态根本进不去)。把 describe、logs --previous、exec 三个命令练成本能反应,K8s 的日常排障就稳了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。