Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’exécution de charges de travail GPU NVIDIA sur Azure Kubernetes Service (AKS) vous oblige traditionnellement à installer et à gérer le pilote GPU NVIDIA, le plug-in d’appareil Kubernetes et un exportateur de métriques GPU sur chaque nœud GPU. Ces composants permettent la planification GPU, l’accès GPU au niveau du conteneur et la télémétrie, mais l’installation manuelle ou via l’opérateur GPU NVIDIA ajoute une surcharge opérationnelle.
Avec des nœuds GPU complètement managés (préversion), AKS installe et gère le pilote GPU NVIDIA, le plug-in d’appareil et l’exportateur de métriques DCGM ( Data Center GPU Manager) pour vous. La création d’un pool de nœuds GPU devient une étape unique et la capacité GPU se comporte comme n’importe quel autre pool de nœuds AKS.
Vous configurez un pool de nœuds GPU managé via deux champs sous gpuProfile.nvidia:
-
managementMode(ManagedouUnmanaged) contrôle si AKS installe la pile GPU managée complète (pilote, plug-in d’appareil et exportateur de métriques DCGM) ou le pilote uniquement. La valeur par défaut estUnmanaged. -
migStrategy(None,Single, ouMixed) définit la stratégie GPU multi-instance (MIG) pour les GPU compatibles tels que A100 et H100. La valeur par défaut estNone.
Dans cet article, vous approvisionnez un pool de nœuds GPU managé, activez éventuellement MIG, vérifiez la pile et exécutez un exemple de charge de travail GPU.
Important
Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les versions d'essai sont fournies « en l’état » et « selon disponibilité », et elles sont exclues des contrats de niveau de service et de la garantie limitée. Les versions préliminaires AKS sont, dans la mesure du possible, partiellement couvertes par le service clientèle. Par conséquent, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :
Avant de commencer
- Cet article suppose que vous disposez d’un cluster AKS. Si vous n'avez pas de cluster, créez-en un à l'aide d'Azure CLI, d'Azure PowerShell ou du portail Azure.
- Vous avez besoin de la Azure CLI version 2.85.0 ou ultérieure installée. Pour connaître la version, exécutez
az --version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI. - Vous devez installer et mettre à niveau vers la dernière version de l’extension
aks-preview. - Obtenez les informations d’identification de votre cluster AKS avec
az aks get-credentialsavant d’exécuter les exempleskubectlde cet article.
Composants GPU managés
Un pool de nœuds GPU managé peut inclure les composants suivants sur chaque nœud :
| Composant | Qu’est-ce que cela fait ? | Qu’est-ce qu’AKS gère ? |
|---|---|---|
| Pilote GPU NVIDIA | Modules de noyau et bibliothèques d’espace utilisateur qui permettent au système d’exploitation et aux conteneurs de communiquer avec le matériel GPU. | Sélection de la version du pilote, installation lors du provisionnement des nœuds et réinstallation après les mises à niveau de l'image du nœud. |
| Plug-in d’appareil NVIDIA Kubernetes | DaemonSet équivalent qui publie des ressources GPU (nvidia.com/gpu, nvidia.com/mig-*) sur le kubelet afin que les pods puissent les demander. |
Déploiement, configuration (y compris la stratégie MIG) et cycle de vie sur chaque nœud GPU. |
| Exportateur de métriques NVIDIA DCGM et DCGM |
Data Center GPU Manager collecte les données d’intégrité et d’utilisation du GPU et expose les métriques Prometheus (par exemple, DCGM_FI_DEV_GPU_UTIL, DCGM_FI_DEV_GPU_TEMP) sur le port 19400. |
Installation, activation du service et étiquette de kubernetes.azure.com/dcgm-exporter=enabled nœud utilisée pour collecter des métriques. |
| Signaux d’intégrité GPU | NPD signale des conditions de nœud spécifiques au GPU, telles que UnhealthyNvidiaDevicePlugin et UnhealthyNvidiaDCGMServices. |
Surveillance NPD et rapports d'état sur les nœuds GPU. |
Installer des profils
Deux gpuProfile champs déterminent quels composants AKS installe :
-
gpuProfile.driver(InstallouNone) : si AKS installe le pilote GPU NVIDIA. -
gpuProfile.nvidia.managementMode(ManagedouUnmanaged) : si AKS installe la pile GPU orientée vers Kubernetes en plus du pilote.
Ensemble, ils produisent trois profils d’installation :
| Installer le profil | Indicateurs CLI | Ce qu'AKS installe et gère |
|---|---|---|
| Pile managée complète |
--enable-managed-gpu=true (ou aucun indicateur) |
Les quatre composants ci-dessus : pilote, plug-in de périphérique, surveillance de l’intégrité GPU dans NPD et exportateur de métriques DCGM. |
| Pilote uniquement (par défaut) | --enable-managed-gpu=false |
Pilote GPU NVIDIA uniquement. Vous installez et gérez le plugin de périphérique, l’exportateur de métriques et la surveillance de l'état de santé vous-même (par exemple, avec l’opérateur GPU NVIDIA). |
| None (BYO) | --enable-managed-gpu=false --gpu-driver None |
Rien. AKS n’installe aucun des quatre composants. Vous êtes propriétaire de la pile complète. Consultez Apportez votre propre pilote GPU. |
Valeurs par défaut et remplacements
-
Valeurs par défaut : si vous ne passez pas
--enable-managed-gpuou--gpu-driver, AKS applique le profil Pilote uniquement sur le pool de nœuds créé avec une taille de machine virtuelle NVIDIA équipée d'un GPU. -
Remplacement :
managementMode: Managedrequiert le pilote, donc--gpu-driver Noneest ignoré lorsque--enable-managed-gpu=trueet que le pilote est toujours installé. Pour ignorer le pilote, définissez à la fois--enable-managed-gpu=falseet--gpu-driver None. -
Immuabilité :
managementMode,migStrategyetdriversont tous fixes au moment de la création. Pour changer de profil, créez un nouvel ensemble de nœuds.
Installez l’extension CLI aks-preview
Installez l’extension CLI
aks-previewà l’aide de la commandeaz extension add. La version 19.0.0b29 ou ultérieure est requise.az extension add --name aks-previewMettez à jour l’extension pour vous assurer que la dernière version est installée à l’aide de la commande
az extension update.az extension update --name aks-preview
Inscrire l’indicateur de fonctionnalité ManagedGPUExperiencePreview
Inscrivez l’indicateur de fonctionnalité ManagedGPUExperiencePreview dans votre abonnement à l’aide de la commande az feature register.
az feature register --namespace Microsoft.ContainerService --name ManagedGPUExperiencePreview
Limites
- Cette fonctionnalité prend actuellement en charge uniquement les tailles de machines virtuelles compatibles GPU NVIDIA .
- La mise à jour d’un pool de nœuds à usage général pour ajouter une taille de machine virtuelle GPU n’est pas prise en charge sur AKS.
- Les pools de nœuds Windows ne sont pas pris en charge avec cette fonctionnalité, car les métriques GPU ne sont pas supportées. Lorsque vous créez Windows pools de nœuds GPU, AKS installe et gère automatiquement les pilotes et le plug-in d’appareil DirectX. Pour plus d’informations, consultez la documentation AKS Windows GPU.
- La migration de vos pools de nœuds GPU multi-instances existants pour utiliser cette fonctionnalité n’est pas prise en charge.
- Les mises à niveau sur place d’un pool de nœuds GPU NVIDIA existant vers un pool de nœuds GPU managé ne sont pas prises en charge. Pour migrer, mettre en cordon et vider vos nœuds GPU existants, puis redéployer vos charges de travail vers un nouveau pool de nœuds GPU créé avec
--enable-managed-gpu=true. Pour plus d’informations, consultez Redimensionner les pools de nœuds sur AKS. - Les
managementMode,migStrategyetdriverchamps sousgpuProfilesont immuables après la création du pool de nœuds. Pour modifier ces valeurs, créez un pool de nœuds. - L’autoscaler de cluster n’est pas pris en charge sur les pools de nœuds GPU managés pendant la préversion. Mettez à l’échelle ces groupes de ressources manuellement.
Note
Les machines virtuelles avec GPU contiennent du matériel spécialisé, plus cher et dépendant de la disponibilité régionale. Pour plus d’informations, voir l’outil de tarification et la disponibilité régionale.
Créer un pool de nœuds GPU géré par AKS (préversion)
Ajoutez un pool de nœuds GPU managé à un cluster AKS existant en passant --enable-managed-gpu=true à az aks nodepool add. AKS configure gpuProfile.nvidia.managementMode sur Managed et installe automatiquement le pilote GPU, le plugin de périphérique et l'exportateur DCGM de métriques.
Pour utiliser la référence SKU du système d’exploitation Ubuntu par défaut, vous créez le pool de nœuds sans spécifier de référence SKU de système d’exploitation. Le pool de nœuds est configuré pour le système d’exploitation par défaut en fonction de la version Kubernetes du cluster.
Ajoutez un pool de nœuds à votre cluster à l’aide de la
az aks nodepool addcommande avec l’indicateur--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=trueVérifiez que les composants logiciels GPU NVIDIA gérés sont installés correctement :
az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunpVotre sortie doit inclure les valeurs suivantes :
... "gpuProfile": { "driver": "Install", "driverType": "", "nvidia": { "managementMode": "Managed", "migStrategy": null } }, ...
Créer un pool de nœuds GPU multi-instance managé (MIG) (préversion)
Pour les références SKU GPU qui prennent en charge le GPU multi-instance (par exemple, A100 et H100), configurez une stratégie MIG lors de la création du pool de nœuds avec l’indicateur --gpu-mig-strategy . La stratégie contrôle la façon dont les partitions MIG sont exposées à Kubernetes :
-
Single: toutes les instances MIG sont agrégées sous la ressource standardnvidia.com/gpu. -
Mixed: chaque profil MIG est exposé en tant que ressource distincte, telle quenvidia.com/mig-1g.10gb. -
None(valeur par défaut) : MIG n’est pas configuré.
Le migStrategy champ est immuable une fois le pool de nœuds créé.
Pour plus d’informations sur le partitionnement MIG, les tailles de machine virtuelle prises en charge et les profils d’instance GPU, consultez Créer un pool de nœuds GPU multi-instances dans AKS et NVIDIA Multi-Instance GPU.
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
Avec cette configuration, les pods demandent des ressources GPU à l’aide du nom de ressource standard nvidia.com/gpu .
Vérifiez le pool de nœuds GPU géré (préversion)
Une fois le pool de nœuds prêt, exécutez les vérifications suivantes pour vérifier que la pile managée complète est installée et saine.
Vérifiez les conditions de nœud spécifiques au GPU à partir du Détecteur de problèmes de nœud (NPD) :
GPU_NODE=$(kubectl get nodes -l agentpool=gpunp -o jsonpath='{.items[0].metadata.name}') kubectl describe node $GPU_NODESur un nœud GPU managé, les conditions suivantes doivent tous deux signaler
False:Pathologie État Reason UnhealthyNvidiaDevicePluginFalseHealthyNvidiaDevicePluginUnhealthyNvidiaDCGMServicesFalseHealthyNvidiaDCGMServicesVérifiez que l’étiquette GPU managée est présente sur le nœud :
kubectl get node $GPU_NODE -o jsonpath='{.metadata.labels.kubernetes\.azure\.com/dcgm-exporter}'Sortie attendue :
enabled.Vérifiez que les ressources GPU sont publiées dans les ressources allocatables du nœud :
kubectl get node $GPU_NODE -o jsonpath='{.status.allocatable}'Pour un pool de nœuds non-MIG, la sortie inclut
"nvidia.com/gpu": "1"(ou plus, selon la référence SKU). Pour un pool de nœuds MIGMixed, la sortie inclut des ressources spécifiques du MIG telles que"nvidia.com/mig-1g.10gb": "7".Exécutez un exemple de charge de travail pour confirmer l’accès GPU à partir d’un conteneur :
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: 1Consultez les journaux des pods pour voir
nvidia-smila sortie montrant le périphérique GPU, la version du pilote et la version CUDA.kubectl logs managed-gpu-test
Mettre à l’échelle un pool de nœuds GPU géré (aperçu)
Mettre à l’échelle manuellement un pool de nœuds GPU managé avec az aks nodepool scale. Les nouveaux nœuds installent la pile GPU managée complète.
az aks nodepool scale \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name gpunp \
--node-count 2
Important
Pendant la préversion, les pools de nœuds GPU managés ne prennent pas en charge la mise à l’échelle automatique du cluster. Redimensionnez ces groupes manuellement.
Autres profils d’installation
Si le profil de pile managée complète n’est pas adapté, AKS prend en charge deux profils alternatifs sur les pools de nœuds GPU.
Utilisez ce profil lorsque vous souhaitez qu’AKS installe et conserve le pilote GPU NVIDIA, mais que vous envisagez de déployer vous-même le plug-in d’appareil et l’exportateur de métriques (par exemple, avec l’opérateur GPU NVIDIA). Définir --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
Avec cette configuration :
- AKS installe et gère le pilote GPU NVIDIA (
gpuProfile.driverestInstall). - AKS n’installe pas de plug-in d’appareil, d’exportateur de métriques DCGM ou de règles d’intégrité GPU.
gpuProfile.nvidiaa la valeurnull. - Aucune ressource n’est
nvidia.com/gpuannoncée tant que vous n’avez pas déployé un plug-in d’appareil.
Étapes suivantes
- Déployez un exemple de charge de travail GPU sur vos nœuds avec GPU gérés par AKS.
- Découvrez l’utilisation du GPU et les métriques de performances de l’exportateur NVIDIA DCGM managé sur votre pool de nœuds GPU.
Articles connexes
- Utilisez des GPU NVIDIA sur AKS pour l’expérience GPU standard (non managée).
- Créez un pool de nœuds GPU à plusieurs instances pour obtenir un arrière-plan sur le partitionnement MIG et les tailles de machine virtuelle prises en charge.
- Opérateur GPU NVIDIA pour gérer les pilotes GPU et le plug-in de périphérique.
- Surveillez les métriques GPU à partir de l’exportateur NVIDIA DCGM managé.
- Surveillance de l’intégrité GPU avec le Node Problem Detector (NPD) sur AKS.
- Utilisez des GPU Windows sur AKS pour les pools de nœuds GPU Windows.
- Tailles de machine virtuelle Azure GPU pour obtenir la liste complète des machines virtuelles activées pour GPU NVIDIA.
- Exécutez l’inférence distribuée sur plusieurs nœuds GPU AKS.