首页/云/Kubernetes 速查/FailedScheduling 事件解读
集群运维与排障54 条

FailedScheduling 事件解读

调度失败事件通常带 0/N nodes are available 的排除明细:逐条读「哪些节点、因什么被排除」,比猜更快。

Kubernetes 速查云更新于 2026-10-13

事件定位

FailedScheduling 是调度器放弃为 Pod 选节点时写下的事件,典型原文是 0/N nodes are available 后面跟随一串排除理由。适用平台是 Kubernetes。它最大的价值在于已经把「哪些节点、因为什么被排除」列清楚了,读这条事件比猜测快得多:常见的排除项包括资源不足、节点亲和不匹配、污点未容忍、卷拓扑冲突、端口或拓扑分布限制。

基本信息

触发时机调度器一轮调度结束后仍无可用节点,Pod 停在 Pending
事件位置kubectl describe pod 的 Events,或 kubectl get events 按 reason 过滤
信息结构可用节点数与各原因被排除的节点数并列出现
自动重试调度器会在集群状态变化时重试,事件会重复出现

典型使用场景

  • 扩容后新副本起不来:确认是集群容量问题还是约束条件写死
  • 节点打标签或改 taint 之后故障:核对节点侧变更与 Pod 的约束是否还匹配
  • 有状态服务迁移卡住:本地卷或可用区拓扑限制了可用节点
  • 配额与准入排查:区分是调度失败还是创建阶段被配额拒绝
  • 巡检自动化:按 reason 过滤事件,把长时间 Pending 的 Pod 捞出来告警

读事件

读事件
kubectl describe pod pending-x | sed -n '/Events:/,$p'        # 事件原文与排除明细
kubectl get events --field-selector reason=FailedScheduling --sort-by=.lastTimestamp | tail -5
kubectl describe node node-1 | grep -A5 'Allocated resources'  # 节点剩余 requests
kubectl get node node-1 -o jsonpath='{.spec.taints}'           # 节点污点
kubectl get pod pending-x -o jsonpath='{.spec.nodeSelector}'   # Pod 的约束条件

事件片段(示例)

事件片段(示例)
0/3 nodes are available: 1 node(s) had untolerated taint {dedicated: gpu},
2 Insufficient memory, 1 node(s) didn't match Pod's node affinity/selector.

常见排除原因

事件里的措辞含义处理方向
Insufficient cpu/memory节点剩余 requests 不足降 requests、扩节点或腾挪负载
didn't match Pod's node affinity/selector标签约束不匹配核对节点标签与 nodeSelector
untolerated taint污点未容忍补 tolerations 或清污点
node(s) had volume node affinity conflict卷的可用区与节点不一致把 Pod 调度到卷所在可用区
didn't match pod anti-affinity rules反亲和与现有副本冲突放宽为软约束或扩拓扑域
同一句里各类原因并列出现,先修出现次数较多的那类,往往能立刻放行;只改一个条件后重新 describe,看排除数量是否下降。
调度器只在集群状态变化时重试,删掉 Pod 重建会得到一条全新的事件,比等下一次重试更直观。

易错点

  • 把 Insufficient 当成集群缺机器:单个 Pod 的 requests 大于任何节点的 Allocatable 时同样报这条,先核对数值再考虑扩容
  • 忽略标签类排除:节点标签调整后没同步 Pod 的 nodeSelector 或 affinity,事件里写得很清楚却容易被跳过
  • 看事件时不看时间戳:旧事件可能来自上一次调度尝试,结合 --sort-by 与 Pod 的 AGE 才判断准确
  • 只解一个原因就收工:多种排除原因并存时,改完一条仍可能 Pending,需重新读事件确认剩余约束

数据来源与参考

  • Kubernetes 官方文档 · 调度器与节点亲和
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌