Azure Kubernetes 服务中的 NVIDIA GPU Operator#
使用 Azure AKS 的方法#
创建 AKS 集群并使用节点池以跳过 GPU 驱动程序安装#
Azure Kubernetes 服务有一项预览功能,允许将 --skip-gpu-driver-install
命令行参数用于 az aks nodepool add
命令。此参数可防止在标准 Ubuntu 操作系统中安装 NVIDIA GPU 驱动程序。
此方法使您能够利用 NVIDIA GPU Operator 提供的生命周期管理来管理您的集群。
$ az aks nodepool add --resource-group <rg-name> --name gpunodes --cluster-name <cluster-name> \
--node-count <n> \
--skip-gpu-driver-install \
...
当您遵循此方法时,您可以安装 Operator,而无需任何特殊考虑或参数。请参阅安装 NVIDIA GPU Operator。
有关此预览功能的更多信息,请参阅 Azure Kubernetes Service 文档中的跳过 GPU 驱动程序安装(预览)。
不使用 GPU Operator 的默认 AKS 配置#
默认情况下,您可以在启用 GPU 的虚拟机上运行 Azure AKS 镜像和 NVIDIA GPU,而无需使用 NVIDIA GPU Operator。
AKS 镜像包括预安装的 NVIDIA GPU 驱动程序和预安装的 NVIDIA Container Toolkit。
在不使用 Operator 的默认配置下,存在以下限制
指标不会通过 NVIDIA DCGM Exporter 收集或报告。
验证容器运行时是手动操作,而不是通过 Operator 自动完成。
多实例 GPU (MIG) 配置文件必须在您创建节点池时设置,并且您无法在运行时更改配置文件。
如果这些限制对您来说是可以接受的,请参阅 Microsoft Azure 产品文档中的在 Azure Kubernetes 服务上使用 GPU 进行计算密集型工作负载,以获取有关配置集群的信息。
带有预安装驱动程序和 Container Toolkit 的 GPU Operator#
AKS 中可用的镜像始终包含预安装的 NVIDIA GPU 驱动程序和预安装的 NVIDIA Container Toolkit。这些镜像降低了安装 Operator 的主要好处,即它可以管理这些软件组件和其他组件的生命周期。
但是,使用 Operator 可以克服前面部分中确定的限制。
为预安装驱动程序和工具包安装 Operator#
在您使用包含预安装的 NVIDIA GPU 驱动程序和 NVIDIA Container Toolkit 的镜像启动 Azure AKS 集群后,您就可以安装 NVIDIA GPU Operator 了。
当您安装 Operator 时,您必须阻止 Operator 自动部署 NVIDIA 驱动程序容器和 NVIDIA Container Toolkit。
添加 NVIDIA Helm 存储库
$ helm repo add nvidia https://helm.ngc.nvidia.com/nvidia \ && helm repo update
安装不带驱动程序容器和工具包的 Operator
$ helm install gpu-operator nvidia/gpu-operator \ -n gpu-operator --create-namespace \ --version=v24.9.2 \ --set driver.enabled=false \ --set toolkit.enabled=false \ --set operator.runtimeClass=nvidia-container-runtime
有关安装选项的更多信息,请参阅常用 Chart 自定义选项。
示例输出
NAME: gpu-operator LAST DEPLOYED: Fri May 5 15:30:05 2023 NAMESPACE: gpu-operator STATUS: deployed REVISION: 1 TEST SUITE: None
Operator 需要几分钟才能安装完成。
确认 Operator 已安装并运行 CUDA 验证容器完成
$ kubectl get pods -n gpu-operator -l app=nvidia-cuda-validator
示例输出
NAME READY STATUS RESTARTS AGE nvidia-cuda-validator-bpvkt 0/1 Completed 0 3m56s
后续步骤#
有关在 NVIDIA GPU 上运行工作负载的示例,请参阅验证:运行示例 GPU 应用程序。