事件消息说明

更新时间:

参考本节,了解任务调度过程中常见的Kubernetes(K8s)事件消息,以及原因和处理建议。

# 术语说明

K8s事件术语 说明 事件详情
Available 可调度节点 节点状态为Ready且未被标记为不可调度
Unschedulable 节点不可调度 1. 节点被手动标记为不可调度
2. 节点存在污点
3. 节点资源耗尽
Affinity/Selector 节点标签选择器匹配失败 1. 节点标签与Pod的nodeSelector不匹配
2. 节点的GPU型号与任务所需的型号不匹配
3. 节点所属资源组与任务所属资源组不匹配
Preemption 资源抢占机制 高优先级任务尝试驱逐低优先级任务以获取资源
No preemption victims 抢占失败 节点资源严重不足,无可驱逐的低优先级任务。
Preemption not helpful 抢占机制无效 节点存在非资源问题(如标签不匹配或不可调度状态)
Insufficient cpu CPU资源不足 1. 节点CPU超分过高
2. 任务请求CPU过大
3. 资源组CPU配额耗尽
Insufficient memory 内存资源不足 1. 节点内存超分过高
2. 任务请求内存过大
3. 内存碎片化严重
Insufficient gpu GPU资源不足 1. 物理GPU卡耗尽
2. 虚拟GPU分配超限
3. 独占任务占用资源
NodeNotReady 节点未就绪 1. kubelet服务异常
2. 节点网络故障
3. 硬件故障(如GPU驱动崩溃)
FailedScheduling 调度失败 调度器找不到任何节点能同时满足Pod的全部调度约束
ResourceQuotaExceeded 超过资源配额 1. 用户配额不足
2. 空间配额不足
DeviceUnavailable 设备不可用 1. GPU/CPU卡故障
2. License限制(错误码-40503)
LicenseExpired 许可证过期 平台/设备License过期(错误码-40500)
PermissionDenied 权限不足 1. 资源组使用权限不足
2. 独占资源权限不足(错误码-40613)

# 典型事件解析示例

事件原文:
0/35 nodes available: 3 unschedulable, 4 didn't match affinity/selector, 28 no preemption victims, 7 preemption not helpful

逐项解析:

事件片段 含义 平台原因分析
0/35 nodes available 集群有35个Ready节点,但无一可用于当前任务。 所有节点均因约束条件无法调度任务
3 unschedulable 3个节点被标记为不可调度 管理员手动禁用节点或节点存在污点
4 didn't match affinity/selector 4个节点不满足任务标签要求 节点未打计算节点标签或GPU型号不匹配
28 no preemption victims 28个节点资源不足且无可驱逐任务 节点资源已完全耗尽(GPU显存/算力不足)
7 preemption not helpful 抢占机制无法解决调度问题 节点因unschedulableaffinity问题无法调度,与资源无关。

# API错误码

调度过程中可能会返回以下orion层面错误码:

  • 40604:没有足够可用的vdevice
  • 40610:资源已被使用,不能重新预留。