Configurer la surveillance de GPU avec Container Insights

Depuis sa version ciprod03022019, l’agent intégré de Container Insights prend désormais en charge la supervision de l’utilisation de GPU (unités de traitement graphique) sur les nœuds de cluster Kubernetes compatibles GPU, et supervise les pods et les conteneurs qui demandent et utilisent des ressources GPU.

Notes

Conformément à l’annonce en amont de Kubernetes, Kubernetes déprécie les métriques GPU signalées par kubelet pour les versions de Kubernetes 1.20 et ultérieures. Ainsi, Container Insights ne pourra plus collecter les métriques suivantes prêtes à l’emploi :

  • containerGpuDutyCycle
  • containerGpumemoryTotalBytes
  • containerGpumemoryUsedBytes

Pour continuer à collecter des métriques GPU via Container Insights, effectuez une migration vers votre exportateur de métriques spécifiques au fournisseur de GPU d’ici le 31 décembre 2022. Configurez la capture Prometheus pour récupérer les métriques de l’exportateur spécifique au fournisseur déployé.

Fabricants de GPU compatibles

Container Insights prend en charge la supervision des clusters de GPU des fournisseurs de GPU suivants :

Container Insights démarre automatiquement la supervision de l’utilisation de GPU sur les nœuds ainsi que celle des demandes GPU en pods et en charges de travail, en collectant les métriques suivantes toutes les 60 secondes et en les stockant dans la table InsightMetrics.

Notes

Après avoir provisionné des clusters avec des nœuds GPU, vérifiez que le pilote GPU est installé comme requis par AKS (Azure Kubernetes Service) pour exécuter les charges de travail GPU. Container Insights collecte les métriques de GPU via des pods de pilote GPU s’exécutant dans le nœud.

Nom de métrique Dimension de la métrique (balises) Description
containerGpuDutyCycle* container.azm.ms/clusterId, container.azm.ms/clusterName, containerName, gpuId, gpuModel, gpuVendor Pourcentage de temps durant lequel le GPU est resté occupé/en cours de traitement pour un conteneur au cours de la période d’échantillonnage passée (60 secondes). Le cycle d’utilisation est un nombre compris entre 1 et 100.
containerGpuLimits container.azm.ms/clusterId, container.azm.ms/clusterName, containerName Chaque conteneur peut spécifier des limites pour un ou plusieurs GPU. Il n’est pas possible de demander ou de limiter une partie d’un GPU.
containerGpuRequests container.azm.ms/clusterId, container.azm.ms/clusterName, containerName Chaque conteneur peut demander un ou plusieurs GPU. Il n’est pas possible de demander ou de limiter une partie d’un GPU.
containerGpumemoryTotalBytes* container.azm.ms/clusterId, container.azm.ms/clusterName, containerName, gpuId, gpuModel, gpuVendor Quantité de mémoire de GPU en octets à disposition pour un conteneur spécifique.
containerGpumemoryUsedBytes* container.azm.ms/clusterId, container.azm.ms/clusterName, containerName, gpuId, gpuModel, gpuVendor Quantité de mémoire de GPU en octets utilisée par un conteneur spécifique.
nodeGpuAllocatable container.azm.ms/clusterId, container.azm.ms/clusterName, gpuVendor Nombre de GPU dans un nœud pouvant être utilisés par Kubernetes.
nodeGpuCapacity container.azm.ms/clusterId, container.azm.ms/clusterName, gpuVendor Nombre total de GPU présents dans un nœud.

* En fonction des modifications en amont de Kubernetes, ces métriques ne sont plus collectées d’office. Comme correctif logiciel temporaire, pour AKS, mettez à niveau votre pool de nœuds GPU vers la dernière version ou *-2022.06.08 ou une version ultérieure. Pour Kubernetes avec Azure Arc, activez la porte de fonctionnalité DisableAcceleratorUsageMetrics=false dans la configuration kubelet du nœud et redémarrez le kubelet. Une fois que les modifications en amont atteignent la disponibilité générale, ce correctif ne fonctionne plus. Prévoyez de passer à l’utilisation de l’exportateur de métriques spécifique de votre fournisseur de GPU d’ici le 31 décembre 2022.

Graphiques de performances de GPU

Container Insights inclut des graphiques préconfigurés pour les métriques listées dans le tableau précédent sous la forme d’un classeur GPU pour chaque cluster. Pour une description des classeurs disponibles dans Container insights, consultez Classeurs dans Container Insights.

Étapes suivantes