这个项目能做什么
NVSentinel是NVIDIA为Kubernetes上的GPU基础设施可靠性而设计的开源项目。它解决了单个故障GPU静默破坏训练运行或导致节点闲置的问题:系统在故障发生时即进行检测,通过封锁(cordon)和排空(drain)受影响的节点来保护工作负载,并通过有针对性的GPU重置或完全重启进行修复,无需人工介入即可使其恢复服务。
核心能力:
- 检测:通过DCGM、syslog/journalctl、云提供商维护事件、Kubernetes对象监控以及基于模式的健康事件分析,实现实时的GPU、网卡和系统级故障检测。
- 保护:封锁故障节点,使调度器停止在其上放置新工作,并可选地排空现有工作负载。通过省略节点排空器(node drainer),可以实现仅封锁模式。
- 修复:通过特权节点内作业(GPU重置或重启)自动修复,并可选择集成云提供商API进行重启。
- 预检(可选):一个初始化容器,在作业启动前使用Kubernetes gang调度验证节点就绪状态;通过命名空间标签启用。
架构:独立模块通过共享的MongoDB事件存储和Kubernetes API协调,模块间无直接通信。健康监控器(GPU、syslog、CSP、网卡、健康事件分析器、Kubernetes对象监控器)通过gRPC将事件发送到平台连接器,后者持久化事件并更新节点条件和事件。故障管理组件(故障隔离、节点排空器、故障修复、清理器)协调存储中的变更并对Kubernetes API执行操作。该设计支持可插拔的健康监控器、排空策略和修复操作,具有可扩展性。
前提条件:Kubernetes 1.34+、Helm 3.0+、启用DCGM独立模式的NVIDIA GPU Operator(dcgm.enabled=true)、cert-manager v1.21+,以及用于数据库的持久存储。
安装与采用:一条Helm命令即可从OCI chart安装或升级NVSentinel。默认仅启用健康监控,这不会造成中断。用户可以通过Helm值逐步启用封锁、排空、修复、清理器和预检。本地故障注入演示可在无GPU硬件的KIND集群中运行,使用模拟DCGM展示检测、隔离和封锁。
支持的硬件:已在NVIDIA Volta、Ampere、Hopper、Ada Lovelace和Blackwell架构上验证。分发仅通过OCI Helm chart、GHCR容器镜像、GitHub Releases和官方文档站点进行;容器镜像带有Sigstore签名的CycloneDX SBOM和SLSA构建来源证明。该项目采用Apache 2.0许可证,并描述为可用于生产测试,API和配置在版本之间可能发生变化。
评论
0 评分人数达到10人后显示
登录后参与讨论。