Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La ejecución de cargas de trabajo de GPU de NVIDIA en Azure Kubernetes Service (AKS) tradicionalmente requiere instalar y mantener el controlador de GPU de NVIDIA, el complemento de dispositivo kubernetes y un exportador de métricas de GPU en cada nodo de GPU. Estos componentes habilitan la programación de GPU, el acceso a GPU de nivel de contenedor y la telemetría, pero su instalación manual o a través del operador de GPU de NVIDIA agrega sobrecarga operativa.
Con los nodos de GPU totalmente administrados (versión preliminar), AKS instala y mantiene el controlador de GPU de NVIDIA, el complemento de dispositivo y el exportador de métricas de Data Center GPU Manager (DCGM) por usted. La creación del grupo de nodos de GPU se convierte en un solo paso y la capacidad de GPU se comporta como cualquier otro grupo de nodos de AKS.
Configure un grupo de nodos de GPU administrado a través de dos campos en gpuProfile.nvidia:
-
managementMode(ManagedoUnmanaged) controla si AKS instala la pila de GPU administrada completa (controlador, complemento de dispositivo y exportador de métricas DCGM) o solo el controlador. El valor predeterminado esUnmanaged. -
migStrategy(None,Single, oMixed) establece la estrategia de GPU de instancias múltiples (MIG) para las SKU de GPU admitidas, como A100 y H100. El valor predeterminado esNone.
En este artículo, aprovisionará un grupo de nodos de GPU administrados, habilitará MIG de forma opcional, verificará la pila y ejecutará una carga de trabajo de GPU de ejemplo.
Importante
Las características en versión preliminar de AKS están disponibles a elección del usuario y en régimen de autoservicio. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y garantía limitada. Las versiones preliminares de AKS cuentan con soporte parcial por parte del servicio al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:
Antes de empezar
- Este artículo supone que ya tiene un clúster de AKS. Si no dispone de un clúster, cree uno mediante CLI de Azure, Azure PowerShell o el Azure Portal.
- Necesita la CLI de Azure versión 2.85.0 o posterior instalada. Para encontrar la versión, ejecute
az --version. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure. - Debe instalar y actualizar a la versión más reciente de la
aks-previewextensión. - Obtenga las credenciales del clúster de AKS con
az aks get-credentialsantes de ejecutar loskubectlejemplos de este artículo.
Componentes de GPU administrados
Un grupo de nodos de GPU administrado puede incluir los siguientes componentes en cada nodo:
| Componente | Qué hace | Qué administra AKS |
|---|---|---|
| Controlador de GPU de NVIDIA | Módulos de kernel y bibliotecas de espacio de usuario que permiten que el sistema operativo y los contenedores hablen con el hardware de GPU. | Selección de la versión del controlador, instalación en el aprovisionamiento de nodos y reinstalación después de las actualizaciones de imágenes de nodo. |
| Complemento de dispositivo NVIDIA Kubernetes | Equivalente a DaemonSet que anuncia recursos de GPU (nvidia.com/gpu, nvidia.com/mig-*) al kubelet para que los pods puedan solicitarlos. |
Implementación, configuración (incluida la estrategia de MIG) y ciclo de vida en cada nodo de GPU. |
| NVIDIA DCGM y el exportador de métricas de DCGM |
El Administrador de GPU del centro de datos recopila datos de uso y estado de GPU y expone las métricas de Prometheus (por ejemplo, DCGM_FI_DEV_GPU_UTIL, DCGM_FI_DEV_GPU_TEMP) en el puerto 19400. |
Instalación, habilitación del servicio y la etiqueta de nodo kubernetes.azure.com/dcgm-exporter=enabled utilizada para recopilar métricas. |
| Señales de estado de GPU | NPD indica que existen condiciones de nodo específicas de GPU, como UnhealthyNvidiaDevicePlugin y UnhealthyNvidiaDCGMServices. |
Supervisión de NPD e informes del estado en nodos de GPU. |
Instalar perfiles
Dos gpuProfile campos deciden cuál de esos componentes instala AKS:
-
gpuProfile.driver(InstalloNone): si AKS instala el controlador de GPU nvidia. -
gpuProfile.nvidia.managementMode(ManagedoUnmanaged): si AKS también instala la pila de GPU orientada a Kubernetes en la parte superior del controlador.
Juntos, generan tres perfiles de instalación:
| Instalar perfil | Marcas de la CLI | Qué instala y administra AKS |
|---|---|---|
| Pila administrada completa |
--enable-managed-gpu=true (o ningún indicador) |
Los cuatro componentes anteriores: controlador, complemento de dispositivo, exportador de métricas DCGM y supervisión del estado de GPU en NPD. |
| Solo controlador (valor predeterminado) | --enable-managed-gpu=false |
Solo controlador de GPU NVIDIA. Instale y administre el complemento de dispositivo, el exportador de métricas y la monitorización de salud usted mismo (por ejemplo, con el Operador de GPU NVIDIA). |
| Ninguno (BYO) | --enable-managed-gpu=false --gpu-driver None |
Nada. AKS no instala ninguno de los cuatro componentes. Es dueño del stack completo. Consulte Traiga su propio controlador de GPU. |
Valores predeterminados y reemplazos
-
Valores predeterminados: Si no se pasa
--enable-managed-gpuo--gpu-driver, AKS aplica el perfil Solo controlador en el grupo de nodos creado con un tamaño de máquina virtual habilitada para GPU NVIDIA. -
Anular:
managementMode: Managedrequiere el controlador, por lo que se ignora--gpu-driver Nonecuando--enable-managed-gpu=truey el controlador sigue instalado. Para omitir el controlador, configure tanto--enable-managed-gpu=falsecomo--gpu-driver None. -
Inmutabilidad:
managementMode,migStrategyydriverse fijan en el momento de la creación. Para cambiar el perfil, cree un nuevo grupo de nodos.
Instalación de la extensión aks-preview de la CLI
Instale la extensión
aks-previewde la CLI mediante el comandoaz extension add. Se requiere la versión 19.0.0b29 o posterior.az extension add --name aks-previewActualice la extensión para asegurarse de que tiene instalada la última versión mediante el comando
az extension update.az extension update --name aks-preview
Registro de la marca de característica ManagedGPUExperiencePreview
Registre la marca de características ManagedGPUExperiencePreview en su suscripción con el comando az feature register.
az feature register --namespace Microsoft.ContainerService --name ManagedGPUExperiencePreview
Limitaciones
- Esta característica solo admite tamaños de máquina virtual (VM) habilitados para GPU nvidia .
- No se admite la actualización de un grupo de nodos de uso general para agregar un tamaño de máquina virtual de GPU en AKS.
- Los grupos de nodos de Windows no son compatibles con esta función, ya que no se admiten las métricas para GPU. Al crear Windows grupos de nodos de GPU, AKS instala y administra automáticamente los controladores y el complemento de dispositivo DirectX. Para obtener más información, consulte la documentación de AKS Windows GPU.
- No se admite la migración de los grupos de nodos de GPU de varias instancias existentes para usar esta característica.
- No se admiten las actualizaciones in situ de un grupo de nodos de GPU de NVIDIA existente a un conjunto de nodos de GPU gestionado. Para migrar, acordonar y purgar los nodos de GPU existentes, vuelva a implementar las cargas de trabajo en un nuevo grupo de nodos de GPU creado con
--enable-managed-gpu=true. Para más información, consulte Cambio de tamaño de grupos de nodos en AKS. - Los campos
managementMode,migStrategyydriverdentro degpuProfileson inmutables después de la creación del grupo de nodos. Para cambiar estos valores, cree un nuevo grupo de nodos. - El escalador automático de clústeres no se admite en grupos de nodos de GPU administrados durante la versión preliminar. Escale estos grupos manualmente.
Nota:
Las máquinas virtuales habilitadas para GPU contienen hardware especializado que está sujeto a precios más altos y disponibilidad limitada según la región. Para obtener más información, consulte la herramienta de precios y la disponibilidad de regiones.
Creación de un grupo de nodos de GPU administrados por AKS (versión preliminar)
Agregue un grupo de nodos de GPU administrado a un clúster de AKS existente pasando --enable-managed-gpu=true a az aks nodepool add. AKS establece gpuProfile.nvidia.managementMode y Managed e instala automáticamente el controlador de GPU, el complemento de dispositivo y el exportador de métricas DCGM.
Para usar la SKU predeterminada del sistema operativo Ubuntu (SO), cree el grupo de nodos sin especificar una SKU del sistema operativo. El grupo de nodos está configurado para el sistema operativo predeterminado en función de la versión de Kubernetes del clúster.
Agregue un grupo de nodos a su clúster utilizando el comando
az aks nodepool addcon el indicador--enable-managed-gpu=true.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --node-vm-size Standard_NC6s_v3 \ --node-taints sku=gpu:NoSchedule \ --enable-managed-gpu=trueConfirme que los componentes de software de GPU de NVIDIA administrados se instalan correctamente:
az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunpLa salida debe incluir los siguientes valores:
... "gpuProfile": { "driver": "Install", "driverType": "", "nvidia": { "managementMode": "Managed", "migStrategy": null } }, ...
Creación de un grupo de nodos de GPU (MIG) administrado de instancias múltiples (versión preliminar)
En el caso de las SKU de GPU que admiten instancias múltiples de GPU (como A100 y H100), configure una estrategia MIG durante la creación del grupo de nodos con la bandera --gpu-mig-strategy. La estrategia controla cómo se exponen las particiones de MIG a Kubernetes:
-
Single: Todas las instancias MIG se agrupan bajo el recurso estándarnvidia.com/gpu. -
Mixed: cada perfil de MIG se expone como un recurso independiente, comonvidia.com/mig-1g.10gb. -
None(valor predeterminado): MIG no está configurado.
El migStrategy campo es inmutable después de crear el grupo de nodos.
Para obtener información sobre la creación de particiones de MIG, los tamaños de máquina virtual admitidos y los perfiles de instancia de GPU, consulte Creación de un grupo de nodos de GPU de varias instancias en AKS y GPU de varias instancias de NVIDIA.
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mignp \
--node-count 1 \
--node-vm-size Standard_NC24ads_A100_v4 \
--node-taints sku=gpu:NoSchedule \
--enable-managed-gpu=true \
--gpu-instance-profile MIG1g \
--gpu-mig-strategy Single
Con esta configuración, los pods solicitan recursos de GPU mediante el nombre de recurso estándar nvidia.com/gpu .
Comprobación del grupo de nodos de GPU administrado (versión preliminar)
Una vez que el grupo de nodos esté listo, ejecute las siguientes comprobaciones para confirmar que la pila administrada completa está instalada y en buen estado.
Compruebe las condiciones de nodo específicas de GPU del Detector de problemas de nodo (NPD):
GPU_NODE=$(kubectl get nodes -l agentpool=gpunp -o jsonpath='{.items[0].metadata.name}') kubectl describe node $GPU_NODEEn un nodo de GPU administrado, las siguientes condiciones deben indicar
False:Condición Situación Motivo UnhealthyNvidiaDevicePluginFalseHealthyNvidiaDevicePluginUnhealthyNvidiaDCGMServicesFalseHealthyNvidiaDCGMServicesCompruebe que la etiqueta de GPU administrada está presente en el nodo:
kubectl get node $GPU_NODE -o jsonpath='{.metadata.labels.kubernetes\.azure\.com/dcgm-exporter}'Salida esperada:
enabled.Compruebe que los recursos de GPU se anuncian en los recursos allocatables del nodo:
kubectl get node $GPU_NODE -o jsonpath='{.status.allocatable}'Para un grupo de nodos que no son MIG, la salida incluye
"nvidia.com/gpu": "1"(o más, dependiendo de la SKU). En el caso de un grupo de nodos MIGMixed, la salida incluye recursos específicos de MIG, como"nvidia.com/mig-1g.10gb": "7".Ejecute una carga de trabajo de ejemplo para confirmar el acceso a GPU desde un contenedor:
apiVersion: v1 kind: Pod metadata: name: managed-gpu-test spec: restartPolicy: Never tolerations: - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule" containers: - name: gpu-test image: mcr.microsoft.com/azuredocs/samples-tf-mnist-demo:gpu command: ["nvidia-smi"] resources: limits: nvidia.com/gpu: 1Vea los registros del pod para ver la salida
nvidia-smique muestra el dispositivo GPU, la versión del controlador y la versión de CUDA:kubectl logs managed-gpu-test
Escalado de un grupo de nodos de GPU administrado (versión preliminar)
Escale manualmente un grupo de nodos de GPU administrado con az aks nodepool scale. Los nuevos nodos instalan el conjunto completo de GPU gestionado.
az aks nodepool scale \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name gpunp \
--node-count 2
Importante
Durante la versión preliminar, los grupos de nodos de GPU administrados no admiten el escalador automático del clúster. Escale estos grupos manualmente.
Perfiles de instalación alternativos
Si el perfil de pila administrada completa no es el adecuado, AKS admite dos perfiles alternativos en grupos de nodos de GPU.
Use este perfil cuando quiera que AKS instale y mantenga el controlador de GPU de NVIDIA, pero tiene previsto implementar el complemento de dispositivo y el exportador de métricas usted mismo (por ejemplo, con el operador de GPU de NVIDIA). Establecer --enable-managed-gpu=false:
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name gpunp \
--node-count 1 \
--node-vm-size Standard_NC6s_v3 \
--node-taints sku=gpu:NoSchedule \
--enable-managed-gpu=false
Con esta configuración:
- AKS instala y administra el controlador de GPU de NVIDIA (
gpuProfile.driveresInstall). - AKS no instala un complemento de dispositivo, un exportador de métricas DCGM ni reglas de mantenimiento de GPU.
gpuProfile.nvidiaesnull. - No se anuncia ningún
nvidia.com/gpurecurso hasta que implemente un complemento de dispositivo.
Pasos siguientes
- Implemente una carga de trabajo de GPU de ejemplo en los nodos habilitados para GPU administrados por AKS.
- Obtenga información sobre el uso de GPU y las métricas de rendimiento del exportador de NVIDIA DCGM administrado en el grupo de nodos de GPU.
Artículos relacionados
- Utilice GPU NVIDIA en AKS para la experiencia estándar de GPU (no administrada).
- Aprenda a crear un grupo de nodos de GPU (MIG) de múltiples instancias para obtener información sobre la partición de MIG y los tamaños de máquina virtual compatibles.
- Operador de GPU NVIDIA para administrar los controladores de GPU y el complemento de dispositivo por uno mismo.
- Monitorea las métricas de GPU del exportador administrado NVIDIA DCGM.
- Supervisión del estado de GPU con Node Problem Detector (NPD) en AKS.
- Utilice GPUs de Windows con AKS para grupos de nodos de GPU de Windows.
- Tamaños de máquinas virtuales con GPU de Azure para ver la lista completa de máquinas virtuales compatibles con GPU NVIDIA.
- Ejecute la inferencia distribuida en varios nodos de GPU de AKS.