本文介绍 Azure Kubernetes 服务(AKS)如何使用节点问题检测器(NPD)监视已启用 GPU 的节点池的运行状况。 NPD 是一个 Kubernetes 组件,用于检测和报告节点级问题,包括硬件故障、驱动程序错误和连接问题,这些问题可能会影响 GPU 工作负载的性能和可用性。
关于 NPD 中的 GPU 健康监控
AKS 通过 节点问题检测器(NPD)支持 GPU 运行状况监视,支持自动检测和报告影响 AKS 群集上启用了 GPU 的节点池的问题。 GPU 运行状况监视通过显示硬件故障、通信故障和系统级错误来帮助 Kubernetes 操作员保持 GPU 节点正常运行和性能。 NPD 设置 GPU 相关的节点条件,并使平台工程团队能够在问题影响应用程序性能或可用性之前采取措施。
这些运行状况信号对于确保各种 GPU 工作负载的最佳性能和可靠性至关重要,包括:
- 机器学习(ML)训练和推理。
- AI 模型开发。
- 高性能计算(HPC)。
- 图形呈现和数据密集型模拟。
局限性
AKS 节点问题检测器 不会 在节点 --gpu-driver none池上运行 GPU 运行状况检查,节点池中安装了 自托管 或自定义 GPU 驱动程序。
支持的 GPU 运行状况检查
NPD 定期监视启用了 GPU 的节点池,并在检测到异常时设置条件。 当前支持以下 GPU 运行状况检查:
GPUMissing:NPD 验证由
nvidia-smi实用工具检测到的 GPU 数是否与分配给节点的虚拟机 SKU (VM SKU) 的预期 GPU 数量相匹配。- 不匹配可能表示硬件故障、驱动程序问题或配置错误。 准确的 GPU 枚举对于确保调度准确性和 GPU 节点上的工作负荷可用性至关重要。
GPUXIDErrors:检查内核日志中 GPU 驱动程序发出的 XID(eXecution ID)错误。 XID 错误是通常在以下情况下发生的低级别 GPU 错误:
- 驱动程序错误地对 GPU 进行编程。
- 发送到 GPU 的命令流中存在损坏。
- 硬件故障或不稳定会影响GPU的运作。
有关详细信息,请参阅 NVIDIA GPU 上的 XID 错误。
NVLink 状态:对于支持 NVLink 的 NVIDIA VM SKU,此条件确认 NVLink 处于活动状态且正常运行。
- NVLink 是一种高速互连,用于促进多个 GPU 之间的数据传输。
- 如果 NVLink 处于非活动状态或降级,则多 GPU 工作负荷可能会遇到性能或通信瓶颈降低的情况。
有关详细信息,请参阅 NVIDIA NVLink。
InfiniBand Link Flapping: NPD 监控 InfiniBand(IB)链接抖动,即 IB 网络设备的间歇性连接。
- 链路震荡不应在正常操作条件下发生,可能会导致分布式工作负载的节点间通信质量下降。
- 它还可以发出物理层问题、配置错误的固件或驱动程序不稳定的信号。
常见问题
节点问题检测器(NPD)是否会自动修正 GPU 节点问题?
NPD 不会直接行动来解决启用 GPU 的节点问题。 NPD 通过发布 Kubernetes 节点条件和事件来检测和报告问题。 任何修正(例如:清空节点、重启工作负载或更换故障硬件)必须通过手动处理、外部自动化或由 Kubernetes 操作员配置的警报系统来完成。
在哪些 Azure VM 大小上,AKS 通过 NPD 执行 GPU 运行状况监控?
目前,NPD 正在对 AKS 上使用 Standard_ND96asr_v4 或 Standard_ND96isr_H100_v5 VM 大小配置的 GPU 节点进行健康检查。
后续步骤
- 了解更多由 NPD 在 AKS 上设置的 节点条件和事件类型。