事件消息说明
更新时间:
参考本节,了解任务调度过程中常见的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 | 抢占机制无法解决调度问题 | 节点因unschedulable或affinity问题无法调度,与资源无关。 |
# API错误码
调度过程中可能会返回以下orion层面错误码:
- 40604:没有足够可用的vdevice
- 40610:资源已被使用,不能重新预留。
← 异常处理说明 JupyterLab注入失败 →