Kubernetes offre un support permettant gérer les processeurs graphiques (GPU) à travers différents nœuds d’un cluster, à l’aide de plug-ins de périphérique.
Dans ArcGIS Enterprise on Kubernetes, vous avez la possibilité d’implémenter un plug-in de périphérique pour activer les nœuds des processeurs graphiques (GPU) dans un cluster, afin d’optimiser les processus SIG, tels que ceux relatifs à l’analyse raster et au Deep Learning. Par défaut, les fonctionnalités, telles que l’analyse raster sont configurées de façon à être exécutées en mode CPU, mais il est également possible de les exécuter en mode GPU lorsque ces ressources sont disponibles.
La prise en compte de la disponibilité et de l’utilisation des GPU dans un cluster est facultative, car elle entraîne des coûts supplémentaires.
Pour activer un GPU, un plugin de périphérique NVIDIA pour Kubernetes est requis. Le plug-in de périphérique NVIDIA pour Kubernetes est un daemonset qui vous permet de connaître le nombre de GPU sur chaque nœud d’un cluster, d’exécuter les conteneurs compatibles avec les GPU et de suivre l’intégrité des GPU.
Remarque :
Dans cette version, ArcGIS Enterprise on Kubernetes n’est pris en charge qu’avec les GPU NVIDIA.
Activer un GPU
Les étapes suivantes du processus permettant d’activer un GPU pour votre organisation sont spécifiques à votre environnement et à vos préférences.
- Suivez les étapes indiquées pour configurer l'analyse raster ou une autre fonctionnalité pour laquelle vous souhaitez utiliser les nœuds compatibles avec les GPU.
- Vérifiez que le plugin de périphérique de votre instance est installé.
Les nœuds GPU sont préconfigurés pour de nombreux environnements cloud. Si le plugin de périphérique n’est pas installé, reportez-vous à la documentation plugin de périphérique NVIDIA pour Kubernetes pour plus d’informations et connaître les étapes d’installation. Si le déploiement a été effectué sur site, l’administrateur doit activer chaque GPU sur chaque nœud du cluster.
- Pour tirer parti des nœuds compatibles avec les GPU pour les processus SIG de votre organisation, définissez les demandes et les limites pour le GPU.
- Si vous souhaitez exécuter les charges de travail GPU exclusivement sur des nœuds GPU, vous pouvez configurer l’affinité des nœuds et les tolérances.
Définir les demandes et les limites pour le GPU
Utilisez le répertoire API ArcGIS Enterprise Administrator pour définir les demandes et limites pour le GPU pour chacun des déploiements suivants :
- system-rasteranalysistools-gpsyncserver (utilisé pour l’entraînement des modèles)
- system-rasterprocessinggpu-dpserver (utilisé pour le traitement)
- Connectez-vous au répertoire API ArcGIS Enterprise Administrator en tant qu’administrateur.
- Cliquez sur System (Système) > Deployments (Déploiements).
- Localisez le déploiement system-rasteranalysistools-gpsyncserver et cliquez sur l’ID correspondant.
- Cliquez sur Edit Deployment (Mettre à jour le déploiement).
- Dans le JSON du déploiement, localisez la section resources pour le déploiement et le paramètre customResources.
"containers": [ { "name": "main-container", "resources": { "memoryMin": "4Gi", "memoryMax": "8Gi", "cpuMin": "0.125", "customResources": { "limits":{"nvidia.com/gpu": "1"}, "requests":{"nvidia.com/gpu": "1"} }, "cpuMax": "2" },
- Mettez à jour le paramètre customResources pour chaque conteneur répertorié afin d’inclure les demandes et limites pour le GPU.
- Cliquez sur Submit (Soumettre) pour enregistrer les modifications apportées au déploiement.
- Répétez ces étapes pour le déploiement system-rasterprocessinggpu-dpserver.
Apprenez comment mettre à jour les déploiements système dans la documentation de l’API du répertoire de l’administrateur.
Configurer l’affinité des nœuds et les tolérances
Il est possible d’exécuter des charges de travail CPU et GPU sur les nœuds GPU. Si vos charges de travail CPU sont autorisées à être exécutées sur un nœud GPU, aucune autre étape n’est requise. Toutefois, si vous souhaitez vous assurer que les charges de travail GPU sont exécutées exclusivement sur les nœuds GPU, des étapes supplémentaires doivent être exécutées par l’administrateur pour configurer l’affinité des nœuds et les tolérances. Pour ce faire, les étapes suivantes sont nécessaires pour altérer les nœuds et appliquer des tolérances aux services concernés afin qu’ils puissent être programmés sur un nœud altéré :
Remarque :
Dans ArcGIS Enterprise Manager, vous pouvez choisir l’effet de NoSchedule et de PreferNoSchedule. Dans cette version, l’effet NoExecute n’est pas disponible car il peut interrompre les processus en cours d’exécution sur un nœud. L’effet NoExecute peut toutefois être appliqué lors de la configuration de l’affinité des nœuds et des tolérances à partir de l’API d’administration.
- Pour vous assurer que les charges de travail GPU sont programmées exclusivement sur les nœuds GPU, altérez les nœuds GPU.
kubectl taint nodes <your-node-name> nvidia.com/gpu=Exists:NoSchedule
- Étiquetez les nœuds GPU. Vous pouvez également utiliser une étiquette existante déjà spécifiée sur le nœud.
kubectl label nodes <your-node-name> raster=GPU
- Connectez-vous à ArcGIS Enterprise Manager en tant qu’administrateur.
- Cliquez sur le bouton Services dans la barre latérale.
- Cliquez sur System services (Services système) et sélectionnez le service RasterProcessingGPU.
- Cliquez sur l’onglet Pod placement (Placement des pods) afin de gérer le placement des pods pour le service.
- Pour appliquer une règle d’affinité des nœuds qui s’assure que les pods du service sont planifiés sur des nœuds GPU, indiquez les informations suivantes dans la section Node Affinity (Affinité des nœuds) et cliquez sur Add (Ajouter) :
- Type : Required (Obligatoire)
- Key (Clé) : raster
- Operator (Opérateur) : In (Dans)
- Value (Valeur) : GPU
- Pour appliquer une tolérance qui permet aux pods de s’exécuter sur des nœuds altérés, indiquez les informations suivantes dans la section Tolerations (Tolérances) et cliquez sur Add (Ajouter) :
- Effect (Effet) : No schedule (Ne pas planifier)
- Key (Clé) : nvidia.com/gpu
- Operator (Opérateur) : Exists (Existe)
- Cliquez sur Save (Enregistrer).
- Vérifiez que les pods GPU sont exécutés sur les nœuds GPU.
Vous pouvez commencer à utiliser les outils d’analyse raster et à héberger l’imagerie dans votre organisation. Consultez également les recommandations relatives à l’Optimisation des analyses raster.
Vous avez un commentaire à formuler concernant cette rubrique ?