【k8s】k8s pod调度失败原因列表、Pod 完整的状态类型列表

一、k8s pod调度失败列表:

通过describe 命令查看失败的pod:

🔍 提示关键词 / 描述 📌 出现条件 💡 可能的解决方向
资源不足类
Insufficient memory 节点内存不够 调整 Pod requests/limits,选择大内存节点
Insufficient cpu 节点 CPU 不够 降低资源请求,升级节点
Insufficient ephemeral-storage 临时磁盘不足 清理磁盘,增加存储
Insufficient nvidia.com/gpu GPU 资源不足 检查 GPU requests,调度到 GPU 节点
Insufficient <custom resource> 自定义资源不足(如 SR-IOV 网卡等) 检查资源注册和调度逻辑
示例:openshift.io/worker_sriov_left
节点状态类
node(s) had taint {...} 节点有未容忍的污点 添加 Pod toleration 或移除节点污点
node(s) were unschedulable 节点被 cordon 执行 kubectl uncordon
node(s) had disk pressure 节点磁盘使用率过高 清理磁盘空间
node(s) had memory pressure 节点内存压力(OOM 频繁) 优化 Pod 内存使用
node(s) had pid pressure 节点进程数接近上限 增加内核线程限制
node(s) had network-unavailable 节点网络未就绪 检查 CNI 插件配置
调度规则类
Pod didn't tolerate node taint Pod 未设置容忍策略 添加对应 toleration
Pod nodeSelector mismatch nodeSelector 无匹配节点 修改 selector 或检查节点 label
Pod affinity/anti-affinity rules 亲和/反亲和规则冲突 简化规则或优化标签布局
No preemption victims found 无可驱逐的低优先级 Pod 调整 priorityClass
Preemption is not helpful 即使驱逐仍无法满足调度 放宽调度规则
综合类
0/xx nodes are available 无符合要求的节点 综合检查资源/规则/污点
persistentvolumeclaim pending PVC 未绑定 PV 检查 PVC/PV/StorageClass
PodToleratesNodeTaints failed 污点容忍检查失败 添加缺失的 toleration

二、Pod 完整的状态类型

Pod 状态 容器状态 详细说明
Pending ❌ 无 Pod 已被调度到节点,但尚未创建容器(可能正在拉取镜像或等待资源)
ContainerCreating ⏳ 创建中 容器正在创建(通常出现在 kubectl get pods 的 STATUS 列)
Running ✅ 有 所有容器已成功创建并至少有一个在运行
CrashLoopBackOff ❌ 可能无 容器反复崩溃(K8s 会在崩溃后重启,exec 时可能遇到容器不存在)
Completed ❌ 无 容器正常退出(仅适用于 restartPolicy: Never 的 Job 类 Pod)
Failed ❌ 无 所有容器已终止,且至少一个容器非正常退出(退出码 ≠ 0)
Succeeded ❌ 无 所有容器成功完成并退出(适用于 Job/CronJob)
Terminating ❌ 可能无 Pod 正在删除,容器可能已被终止
Init:Error ❌ 无 Init 容器执行失败,主容器不会被创建
Init:CrashLoopBackOff ❌ 无 Init 容器反复崩溃
ImagePullBackOff ❌ 无 镜像拉取失败,容器未创建
ErrImagePull ❌ 无 镜像拉取错误(如权限不足/镜像不存在)
Error ❌ 无 通常表示 Pod 启动前遇到严重错误(如不存在的卷)
Unknown ❓ 不确定 Kubelet 无法上报状态(通常为节点通信问题)

补充说明:

  • 多容器 Pod:如果 Pod 有多个容器,部分容器可能运行而其他容器崩溃(此时状态显示 Running(N/M),如 3/4 表示 4 个容器中 3 个正常运行)

  • 临时状态:ContainerCreating 和 Terminating 是短暂状态,通常很快会转换到其他状态