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.
Dans cet article, vous déployez l’infrastructure nécessaire pour exécuter des charges de travail Ray AI avec Kueue sur Azure Kubernetes Service (AKS). Le module Terraform provisionne un cluster AKS avec des pools de nœuds GPU, installe l’opérateur KubeRay et le contrôleur Kueue via Helm, crée Stockage Blob Azure avec des jeux de données pré-intermédiaires et configure l’identité de la charge de travail pour un accès sécurisé.
Important
Les logiciels open source sont mentionnés dans la documentation et les exemples AKS. Les logiciels que vous déployez sont exclus des contrats de niveau de service AKS, de la garantie limitée et du support Azure. Quand vous utilisez une technologie open source avec AKS, consultez les options de support disponibles auprès des communautés et responsables de projet respectifs pour élaborer un plan.
Microsoft assume la responsabilité de la génération des packages open source que nous déployons sur AKS. Cette responsabilité comprend la maîtrise complète des processus de génération, d’analyse, de signature et de validation ainsi que l’application de correctifs logiciels et le contrôle des fichiers binaires présents dans les images conteneur. Pour plus d’informations, consultez Gestion des vulnérabilités pour AKS et Couverture du support AKS.
Prérequis
- Un abonnement Azure. Si vous n’en avez pas, créez un compte gratuit.
-
Azure CLI version 2.70 ou ultérieure, authentifiée avec
az login. Si vous avez plusieurs abonnements, définissez le bon abonnement avecaz account set --subscription <subscription-id>. - Terraform version 1.6 ou ultérieure.
-
kubectl version 1.28 ou ultérieure. Installer avec
az aks install-cli. - Python version 3.10 ou ultérieure (obligatoire pour la génération de données Aurora).
- Quota GPU dans votre région cible Azure. La configuration par défaut provisionne un
Standard_ND96amsr_A100_v4nœud (8×A100 80 Go de GPU).
Cloner le référentiel
Clonez le référentiel Azure/AKS et accédez au module d’infrastructure :
git clone https://github.com/Azure/AKS
cd AKS/examples/kueue-and-ray-on-aks/1-infrastructure
Installer des dépendances Python
L’étape de chargement des données Aurora nécessite Python packages. Installez-les avant de déployer :
pip install -r terraform/requirements-generator.txt
Vérifier le quota GPU
Vérifiez que votre abonnement dispose d’un quota pour la référence SKU GPU dans votre région cible. Remplacez par eastus2 votre région préférée :
LOCATION=<your-azure-region>
az vm list-usage --location "$LOCATION" --output table | grep -i "NDAMSv4_A100"
Remarque
Si vous n’avez pas de quota GPU ou que vous souhaitez valider l’infrastructure sans GPU, déployez avec gpu_enabled=false:
terraform apply -var="subscription_id=<your-subscription-id>" -var="gpu_enabled=false"
La voie CPU uniquement est utile pour valider la configuration de l’infrastructure et de la file d’attente. Les charges de travail qui demandent des GPU restent en attente.
Déployer avec Terraform
Initialisez et appliquez le module Terraform :
cd terraform
terraform init
terraform apply -var="subscription_id=<your-subscription-id>"
Le module Terraform crée :
- Un cluster AKS pour lequel l’émetteur OIDC et l’identité de charge de travail sont activés
- Un pool de nœuds système et un pool de nœuds GPU (quand
gpu_enabled=true) - Opérateur KubeRay et contrôleur Kueue (versions Helm provenant de MCR)
- DaemonSet de surveillance des GPU (quand
gpu_enabled=true) - compte Stockage Blob Azure avec
auroraetllm-pipelineconteneurs - Une identité managée affectée par l’utilisateur avec le rôle Contributeur aux données Blob du stockage
- Justificatif d’identité fédérée pour le
ray-workloadServiceAccount - Jeux de données préchargés (données Aurora WeatherBench2 et jeu de données viggo NLG)
Pour obtenir la configuration complète du module Terraform, consultez le répertoire d’infrastructure 1 dans le référentiel.
Se connecter au cluster
Récupérez les informations d’identification de votre nouveau cluster AKS :
eval "$(terraform output -raw get_credentials_command)"
Vérifier le déploiement
Vérifiez que les opérateurs sont en cours d’exécution et que les nœuds sont disponibles :
Vérifiez l’opérateur KubeRay :
kubectl -n kuberay-system get podsSortie attendue :
NAME READY STATUS RESTARTS AGE kuberay-operator-xxxxxxxxxx-xxxxx 1/1 Running 0 5mVérifiez le contrôleur Kueue :
kubectl -n kueue-system get podsSortie attendue :
NAME READY STATUS RESTARTS AGE kueue-controller-manager-xxxxxxxxxx-xxxxx 1/1 Running 0 5mVérifiez les nœuds :
kubectl get nodesSortie attendue (avec
gpu_enabled=true:NAME STATUS ROLES AGE VERSION aks-gpupool-xxxxxxxx-vmssxxxxxx Ready <none> 5m v1.35.x aks-system-xxxxxxxx-vmssxxxxxx Ready <none> 10m v1.35.x aks-system-xxxxxxxx-vmssxxxxxx Ready <none> 10m v1.35.xVérifiez la supervision du GPU (uniquement lorsque
gpu_enabled=true):kubectl -n gpu-monitoring get daemonsetsSortie attendue :
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE gpu-monitoring-a100 1 1 1 1 1 <none> 5m
Nettoyer les ressources
Pour supprimer toutes les ressources Azure que vous avez créées à l’aide de ce module :
terraform destroy -var="subscription_id=<your-subscription-id>"