NVIDIA GPU Operator 是一个用于在 Kubernetes 集群上自动化部署、配置和管理 NVIDIA GPU 及相关硬件资源的工具。它通过 Kubernetes Operator 框架来实现自动化管理,简化了在 Kubernetes 环境中使用 GPU 的过程。以下是 NVIDIA GPU Operator 的主要功能和组件:
### 主要功能
1. **自动安装和维护 GPU 驱动程序**:自动安装和维护 GPU 驱动程序,确保驱动程序始终是最新的并正确配置,使 AI/ML 工作负载能够平稳高效地运行。
2. **高级 GPU 功能的配置**:
- **vGPU (虚拟 GPU)**:使单个 GPU 能够在多个虚拟机之间共享,最大限度地提高资源利用率和灵活性。
- **MIG (多实例 GPU)**:允许将单个 GPU 分区成多个独立的实例,每个实例都有自己的专用资源,从而提高工作负载隔离和效率。
- **GPU 时间切片**:在多个任务之间切片 GPU 时间,确保 GPU 资源在不同工作负载之间公平高效地分配。
3. **配置 GPUDirect RDMA 和 GPUDirect 存储**:
- **GPUDirect RDMA (远程直接内存访问)**:促进不同节点上的 GPU 之间的直接通信,绕过 CPU 并减少延迟,这对高性能计算应用程序至关重要。
- **GPUDirect 存储**:允许 GPU 与存储设备之间直接传输数据,显著加快数据密集型应用程序的数据访问和处理速度。
4. **配置 GDR Copy**:GPUDirect RDMA (GDR) Copy 是一个基于 GPUDirect RDMA 技术的低延迟 GPU 内存复制库,允许 CPU 直接映射和访问 GPU 内存,提高了内存复制操作的效率,减少了开销并提高了整体性能。
5. **沙箱工作负载**:使应用程序能够在利用虚拟机 (VM) 或具有安全限制的容器的隔离环境中运行,有助于增强安全性、更好的资源管理和模型的可重复性。
### 主要组件
- **NFD (Node Feature Discovery)**:用于给节点打上某些标签,如 `nvidia.com/gpu.present=true`,表示该节点是 GPU 节点。
- **GFD (GPU Feature Discovery)**:用于收集节点的 GPU 设备属性(如 GPU 驱动版本、GPU 型号等),并将这些属性以节点标签的方式透出。
- **NVIDIA Driver Installer**:基于容器的方式在节点上安装 NVIDIA GPU 驱动。
- **NVIDIA Container Toolkit Installer**:能够实现在容器中使用 GPU 设备。
- **NVIDIA Device Plugin**:用于实现将 GPU 设备以 Kubernetes 扩展资源的方式供用户使用。
- **DCGM Exporter**:周期性地收集节点 GPU 设备的状态(如当前温度、总的显存、已使用显存、使用率等)并暴露 Metrics,结合 Prometheus 和 Grafana 使用。
### 部署顺序
NVIDIA GPU Operator 按以下顺序部署各个组件,如果前一个组件部署失败,后面的组件将停止部署:
1. NVIDIA Driver Installer
2. NVIDIA Container Toolkit Installer
3. NVIDIA Device Plugin
4. DCGM Exporter
5. GFD
### 自定义资源定义 (CRD)
- **ClusterPolicy CRD**:核心配置,管理 GPU 相关组件的整个生命周期,包括驱动程序、运行时、设备插件和监控工具。
- **NvidiaDriver CRD**:管理 NVIDIA 驱动程序在 Kubernetes 节点上的部署和生命周期,确保安装并运行正确版本的驱动程序。
通过这些功能和组件,NVIDIA GPU Operator 为在 Kubernetes 环境中有效地管理 GPU 资源提供了全面的解决方案,支持先进的技术并简化复杂的配置,从而为 AI 和 ML 工作负载带来卓越的性能和可扩展性。
标签:驱动程序,Kubernetes,NVIDIA,Operator,GPU,节点 From: https://www.cnblogs.com/gaoyuechen/p/18667993