Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Configure and manage the ack-nvidia-device-plugin add-on

Dernière mise à jour :Aug 11, 2026

Le plug-in de périphérique NVIDIA est un plug-in de périphérique GPU pour les clusters Kubernetes qui gère les GPU sur chaque nœud, permettant à Kubernetes d'utiliser les ressources GPU plus efficacement. Cette rubrique explique comment mettre à niveau et redémarrer le plug-in de périphérique NVIDIA, isoler les périphériques GPU et vérifier sa version sur les nœuds Alibaba Cloud Container Service for Kubernetes (ACK) dans un scénario de planification exclusive des GPU.

Remarques importantes

Lorsque vous déployez le plug-in de périphérique NVIDIA en tant que DaemonSet, tenez compte des points suivants :

  • Le module complémentaire est installé automatiquement lors de la création d'un cluster.

  • Si vous désinstallez ce module complémentaire, les nœuds accélérés par GPU ajoutés lors du scale-out ne pourront pas signaler correctement leurs ressources GPU.

  • La mise à niveau d'un cluster depuis une version antérieure vers la version 1.32 entraîne également la migration du plug-in de périphérique NVIDIA, passant d'un pod statique à un module complémentaire ACK.

  • Le DaemonSet utilise un NodeSelector (ack.node.gpu.schedule=default). Lorsqu'un nœud accéléré par GPU est ajouté au cluster, le script ACK qui ajoute le nœud attache automatiquement cette étiquette au nœud accéléré par GPU. Le DaemonSet déploie ensuite son pod sur le nœud accéléré par GPU.

Important
  • Si un nœud exécute Ubuntu 22.04 ou Red Hat Enterprise Linux (RHEL) 9.3 64 bits, le plug-in de périphérique NVIDIA peut ne pas fonctionner correctement après l'exécution de la commande systemctl daemon-reload ou systemctl daemon-reexec. Ce problème survient car le composant ack-nvidia-device-plugin définit par défaut la variable d'environnement NVIDIA_VISIBLE_DEVICES=all pour les pods, ce qui peut rendre le périphérique GPU inaccessible. Pour plus d'informations, consultez la section Que faire si l'erreur « Failed to initialize NVML: Unknown Error » se produit lors de l'exécution d'un conteneur GPU ?.

  • Si vous mettez à niveau un cluster d'une version antérieure à 1.32 vers la version 1.32 avant le 1er mai 2025, le cluster peut contenir des plug-ins de périphérique NVIDIA déployés à la fois en tant que pods statiques et DaemonSets. Vous pouvez exécuter le script suivant pour identifier les nœuds où le plug-in de périphérique NVIDIA est déployé en tant que pod statique.

    #!/bin/bash
    # Loop through all pods with the component=nvidia-device-plugin label in the kube-system namespace.
    for i in $(kubectl get po -n kube-system -l component=nvidia-device-plugin | grep -v NAME | awk '{print $1}');do
        # Check if the pod's configuration source is 'file', which indicates a static pod.
        if kubectl get po $i -o yaml -n kube-system | grep 'kubernetes.io/config.source: file' &> /dev/null;then
        # Print the node name if it is a static pod.
        kubectl get pod $i -n kube-system -o jsonpath='{.spec.nodeName}{"\n"}'
        fi
    done

    Résultat attendu :

    cn-beijing.10.12.XXX.XX
    cn-beijing.10.13.XXX.XX

    Le résultat indique que certains nœuds ont toujours le plug-in de périphérique NVIDIA déployé en tant que pod statique. Vous pouvez utiliser la commande suivante pour migrer le plug-in de périphérique NVIDIA d'un pod statique vers un DaemonSet.

    kubectl label nodes <NODE_NAME> ack.node.gpu.schedule=default
  • Lorsque vous mettez à niveau un pool de nœuds dans un cluster de version 1.31 ou antérieure, le processus met également à niveau le plug-in de périphérique NVIDIA et réinitialise toutes ses configurations non standard.

Différences entre les versions

Les stratégies d'implémentation et de gestion du composant ack-nvidia-device-plugin varient selon la version du cluster, comme décrit dans le tableau suivant.

Fonctionnalité

Version 1.32 et ultérieure

Versions 1.20 à 1.31

Méthode de déploiement

DaemonSet

Pod statique

Méthode de gestion

Page Modules complémentaires de la console ACK

Manuelle

Exigence d'étiquette de nœud

ack.node.gpu.schedule=default

Aucune

Stratégie de mise à niveau du pool de nœuds

Mise à niveau manuelle

Mise à niveau automatique

Si la version de votre cluster est antérieure à 1.20, nous vous recommandons de mettre à niveau manuellement le cluster .

Prérequis

Vérifier la version du plug-in de périphérique NVIDIA

Version 1.32 et ultérieure

Pour les modules complémentaires déployés en tant que DaemonSet, accédez à la page Add-ons de la console ACK, recherchez le module complémentaire ack-nvidia-device-plugin et affichez sa version sur la carte du module complémentaire.

Versions 1.20 à 1.31

Pour les modules complémentaires déployés en tant que pod statique, exécutez la commande suivante pour vérifier la version du module complémentaire.

kubectl get pods -n kube-system -l component=nvidia-device-plugin \
  -o jsonpath='{range .items[*]}{.spec.containers[0].image}{"\t"}{.spec.nodeName}{"\n"}{end}' \
  | awk -F'[:/]' '{split($NF, a, "-"); print a[1] "\t" $0}' \
  | sort -k1,1V \
  | cut -f2- \
  | awk -F'\t' '{split($1, img, ":"); print img[NF] "\t" $2}'

Mettre à niveau le plug-in de périphérique NVIDIA

  1. Mettez à niveau le module complémentaire ack-nvidia-device-plugin.

    Version 1.32 et ultérieure

    1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

    2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Add-ons .

    3. Sur la page Modules complémentaires, recherchez la carte ack-nvidia-device-plugin et cliquez sur Upgrade.

    4. Dans la boîte de dialogue qui s'affiche, cliquez sur OK.

    Versions 1.20 à 1.31

    1. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Nodes > Nodes.

    2. Sélectionnez les nœuds accélérés par GPU que vous souhaitez gérer, cliquez sur Batch Operations en bas de la liste des nœuds, sélectionnez Run Shell Scripts dans la boîte de dialogue Batch Operations, puis cliquez sur OK.

      Important

      Nous vous recommandons de commencer par mettre à niveau le plug-in de périphérique GPU sur un petit nombre de nœuds accélérés par GPU. Après avoir vérifié que le plug-in fonctionne comme prévu, effectuez la mise à niveau sur les nœuds restants.

    3. Vous êtes redirigé vers la console CloudOps Orchestration Service (OOS). Définissez le Execution Mode sur Paused Upon Failure et cliquez sur Suivant : Paramètres.

    4. Sur la page des paramètres, sélectionnez Exécuter un script Shell et collez l'exemple de script suivant.

      Remarque
      • Définissez le paramètre RUN_PKG_VERSION dans le script sur le numéro de version majeure du cluster (par exemple, 1.30). Ne saisissez pas le numéro de version mineure (par exemple, 1.30.1). Sinon, le script générera une erreur.

      • Dans le script, modifiez le paramètre REGION_ID pour qu'il corresponde à l'ID de région du cluster actuel, par exemple cn-beijing.

      #!/bin/bash
      set -xe
      
      # Set the Kubernetes major version.
      RUN_PKG_VERSION=1.30
      # Set the region ID.
      REGION_ID=cn-beijing
      
      function update_device_plugin() {
      	base_dir=/tmp/update_device_plugin
      	rm -rf $base_dir
      	mkdir -p $base_dir
      	cd $base_dir
      	region_id=$REGION_ID
      	PKG_URL=https://aliacs-k8s-${region_id}.oss-${region_id}-internal.aliyuncs.com/public/pkg/run/run-${RUN_PKG_VERSION}.tar.gz
      	curl -sSL --retry 3 --retry-delay 2 -o run.tar.gz $PKG_URL
      	tar -xf run.tar.gz
      
      	local dir=pkg/run/$RUN_PKG_VERSION/module
      	# Replace the image registry address.
      	sed -i "s@registry.cn-hangzhou.aliyuncs.com/acs@registry-${region_id}-vpc.ack.aliyuncs.com/acs@g" $dir/nvidia-device-plugin.yml
      	mkdir -p /etc/kubernetes/device-plugin-backup
      	mkdir -p /etc/kubernetes/manifests
      	# Back up the old configuration file.
      	mv  /etc/kubernetes/manifests/nvidia-device-plugin.yml /etc/kubernetes/device-plugin-backup/nvidia-device-plugin.yml.$(date +%s)
      	sleep 5
      	# Copy the new configuration file.
      	cp -a $dir/nvidia-device-plugin.yml /etc/kubernetes/manifests
      	echo "succeeded to update device plugin"
      }
      
      # Check if the nvidia-device-plugin.yml file exists.
      if [ -f /etc/kubernetes/manifests/nvidia-device-plugin.yml ]; then
      	update_device_plugin
      else
      	echo "skip to update device plugin"
      fi
    5. Cliquez sur Suivant : Confirmer. Après avoir confirmé les informations, cliquez sur Create.

      Une fois la tâche créée, vous êtes automatiquement redirigé vers la page Gestion de l'exécution des tâches, où vous pouvez afficher l'état d'exécution de la tâche. La mise à jour est réussie si la valeur de Output est succeeded to update device plugin.

  2. Vérifiez si le module complémentaire fonctionne comme prévu.

    Exécutez les commandes suivantes pour vérifier si le plug-in de périphérique GPU fonctionne correctement sur le nœud accéléré par GPU.

    1. Utilisez kubectl pour vous connecter au cluster via Workbench ou CloudShell.

    2. Exécutez la commande suivante pour vérifier si le plug-in de périphérique NVIDIA a redémarré :

      kubectl get po -n kube-system -l component=nvidia-device-plugin 

      La colonne AGE du résultat d'exemple indique si le pod a redémarré.

      NAME                             READY   STATUS    RESTARTS      AGE
      nvidia-device-plugin-xxxx        1/1     Running   1             1m
    3. Après le redémarrage de tous les pods, exécutez le script suivant pour vérifier si les nœuds signalent les ressources GPU :

      #!/bin/bash
      
      # Get all NVIDIA Device Plugin pods and their corresponding nodes.
      PODS=$(kubectl get po -n kube-system -l component=nvidia-device-plugin -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.nodeName}{"\n"}{end}')
      
      # Iterate through each pod's node.
      echo "$PODS" | while IFS=$'\t' read -r pod_name node_name; do
          # Get the allocatable nvidia.com/gpu resource value for the node.
          gpu_allocatable=$(kubectl get node "$node_name" -o jsonpath='{.status.allocatable.nvidia\.com/gpu}' 2>/dev/null)
      
          # Check if the resource value is 0.
          if [ "$gpu_allocatable" == "0" ]; then
              echo "Error: node=$node_name, pod=$pod_name, resource(nvidia.com/gpu) is 0"
          fi
      done

      Si un nœud signale zéro ressource, consultez la section Redémarrer le plug-in de périphérique NVIDIA.

Redémarrer le plug-in de périphérique NVIDIA

Dans les scénarios de planification exclusive des GPU sur ACK, le plug-in de périphérique qui signale les périphériques GPU sur un nœud est déployé par défaut en tant que pod. Par conséquent, vous devez effectuer le redémarrage sur le nœud cible.

Version 1.32 et ultérieure

  1. Exécutez la commande suivante pour trouver le pod du plug-in de périphérique sur le nœud correspondant.

    kubectl get pod -n kube-system -l component=nvidia-device-plugin -o wide | grep <NODE>
  2. Exécutez la commande suivante pour redémarrer le pod du plug-in de périphérique correspondant.

    kubectl delete po <DEVICE_PLUGIN_POD> -n kube-system 

Versions 1.20 à 1.31

  1. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Nodes > Node Pools.

  2. Sur la page Node Pools, cliquez sur le nom du pool de nœuds pour accéder à la page de gestion des nœuds, puis connectez-vous au nœud accéléré par GPU cible.

    Si le système d'exploitation est ContainerOS, la connexion directe de l'utilisateur est désactivée par défaut pour réduire les risques potentiels de sécurité, et la connexion SSH n'est pas fournie. Si vous avez toujours besoin de vous connecter à une instance pour les opérations et la maintenance, consultez la section Opérations et maintenance des nœuds ContainerOS .
  3. Sélectionnez les nœuds accélérés par GPU que vous souhaitez gérer, cliquez sur Batch Operations en bas de la liste des nœuds, sélectionnez Exécuter une commande Shell dans la boîte de dialogue Batch Operations, puis cliquez sur OK.

    Important

    Nous vous recommandons de commencer par redémarrer le plug-in de périphérique sur un petit nombre de nœuds accélérés par GPU. Après avoir vérifié que le plug-in fonctionne comme prévu, effectuez le redémarrage sur les nœuds restants.

  4. Vous êtes redirigé vers la console OOS. Définissez le Execution Mode sur Paused Upon Failure et cliquez sur Suivant : Paramètres.

  5. Sur la page des paramètres, sélectionnez Run Shell Script et collez l'exemple de script suivant.

    #!/bin/bash
    set -e
    
    # Check if the nvidia-device-plugin.yml file exists.
    if [ -f /etc/kubernetes/manifests/nvidia-device-plugin.yml ]; then
    	# Move the file to restart the static pod.
    	cp -a /etc/kubernetes/manifests/nvidia-device-plugin.yml /etc/kubernetes
    	rm -rf /etc/kubernetes/manifests/nvidia-device-plugin.yml
    	sleep 5
    	mv /etc/kubernetes/nvidia-device-plugin.yml /etc/kubernetes/manifests
    	echo "the nvidia device is restarted"
    else
    	echo "no need to restart nvidia device plugin"
    fi
  6. Cliquez sur Suivant : Confirmer. Après avoir confirmé les informations, cliquez sur Create. Vous êtes redirigé vers la page Gestion de l'exécution des tâches où vous pouvez afficher l'état de la tâche.

  7. Exécutez la commande suivante pour vérifier si le plug-in de périphérique GPU fonctionne correctement sur le nœud accéléré par GPU.

    kubectl get nodes <NODE_NAME> -o jsonpath='{.metadata.name} ==> nvidia.com/gpu: {.status.allocatable.nvidia\.com/gpu}'

    Résultat attendu :

    cn-hangzhou.172.16.XXX.XX ==> nvidia.com/gpu: 1

    Une valeur non nulle pour la ressource étendue nvidia.com/gpu sur un nœud accéléré par GPU indique que le plug-in de périphérique fonctionne correctement.

Modifier la clé de point de contrôle du plug-in de périphérique

Lors de l'allocation d'un périphérique à un pod, le plug-in de périphérique crée un fichier de point de contrôle sur le nœud qui enregistre quels périphériques sont alloués à quels pods. Par défaut, le plug-in de périphérique NVIDIA utilise l'UUID du GPU comme clé unique pour chaque périphérique GPU dans le fichier de point de contrôle. Vous pouvez modifier cette clé pour utiliser l'index du périphérique afin de résoudre des problèmes tels que la perte d'UUID après une migration à froid de machine virtuelle.

Version 1.32 et ultérieure

  1. Exécutez la commande suivante pour modifier le DaemonSet du plug-in de périphérique NVIDIA.

    kubectl edit ds -n kube-system ack-nvidia-device-plugin
  2. Ajoutez la variable d'environnement CHECKPOINT_DEVICE_ID_STRATEGY.

        env:
          - name: CHECKPOINT_DEVICE_ID_STRATEGY
            value: index
  3. Redémarrez le plug-in de périphérique NVIDIA pour appliquer les modifications.

Versions 1.20 à 1.31

  1. Vérifiez le tag de l'image dans le fichier /etc/kubernetes/manifests/nvidia-device-plugin.yml sur le nœud cible. Le tag indique la version du Device-Plugin. Si la version est 0.9.3 ou ultérieure, aucune action n'est requise. Sinon, mettez à jour la version vers v0.9.3-0dd4d5f5-aliyun.

  2. Modifiez les variables d'environnement du pod statique dans le fichier /etc/kubernetes/manifests/nvidia-device-plugin.yml. Consultez le code suivant pour ajouter la variable d'environnement CHECKPOINT_DEVICE_ID_STRATEGY.

        env:
          - name: CHECKPOINT_DEVICE_ID_STRATEGY
            value: index
  3. Redémarrez le plug-in de périphérique NVIDIA pour appliquer les modifications.

Activer l'isolation des périphériques GPU

Important

L'isolation des périphériques GPU est prise en charge uniquement sur nvidia-device-plugin v0.9.1 ou version ultérieure. Pour plus d'informations, consultez la section Vérifier la version du plug-in de périphérique NVIDIA.

Dans les scénarios de planification exclusive des GPU sur ACK, vous devrez peut-être isoler un périphérique GPU sur un nœud en raison d'une panne ou pour d'autres raisons. ACK fournit un mécanisme permettant d'isoler manuellement un périphérique pour empêcher le planificateur d'assigner de nouveaux pods d'application GPU à ce périphérique. Suivez ces étapes :

Sur le nœud cible, gérez le fichier unhealthyDevices.json dans le répertoire /etc/nvidia-device-plugin/. Si ce fichier n'existe pas, créez-le. Le fichier unhealthyDevices.json doit être au format JSON suivant. Le tableau peut contenir plusieurs clés de point de contrôle de périphérique. Ajoutez des clés selon vos besoins.

{
  "index": ["x", "x"],
  "uuid": ["xxx", "xxx"]
}

Vous pouvez saisir l'index ou l'uuid du périphérique cible à isoler dans le fichier JSON. Il suffit de saisir l'un ou l'autre pour chaque périphérique. Les modifications prennent effet automatiquement après l'enregistrement du fichier.

Une fois la configuration terminée, vous pouvez vérifier le nombre de ressources nvidia.com/gpu signalées par le nœud Kubernetes pour valider l'effet de l'isolation.

Monter les périphériques GDR et activer l'accélération de la copie mémoire GPU

Prérequis

À partir de la version v0.5.0, ack-nvidia-device-plugin prend en charge le montage des périphériques GDR dans les conteneurs GPU. Cette fonctionnalité nécessite les éléments suivants :

  • La version du cluster est 1.32 ou ultérieure.

  • Le nœud est un nœud Lingjun.

  • Le logiciel GDR est installé sur le nœud.

    Vous pouvez vous connecter au nœud et exécuter la commande lsmod | grep gdrdrv pour vérifier si le module noyau GDR est chargé. Voici un exemple de résultat :
    gdrdrv                196608  0
    nvidia              14680064  88 nvidia_uvm,nvidia_peermem,gdrdrv,nvidia_modeset
  • NVIDIA Container Toolkit 1.15.0 ou version ultérieure est installé sur le nœud.

    Vous pouvez vérifier la version en vous connectant au nœud et en exécutant nvidia-container-cli --version . Voici un exemple de résultat :
    cli-version: 1.17.8
    lib-version: 1.17.8

Activer l'accélération GDR

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Add-ons .

  3. Sur la page Modules complémentaires, recherchez la carte ack-nvidia-device-plugin et cliquez sur Configuration.

  4. Dans la boîte de dialogue qui s'affiche, sélectionnez Enable GDRCopy to accelerate GPU memory copy (effective on Lingjun nodes with GDR software installed and nvidia-container-toolkit version >= 1.15.0).

Vérifier le résultat

  1. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Deployments.

  2. Sur la page Deployments, cliquez sur Create from YAML. Utilisez l'exemple de code suivant pour créer une application.

    apiVersion: v1
    kind: Pod
    metadata:
      name: tensorflow-mnist
      namespace: default
    spec:
      containers:
      - image: registry.cn-beijing.aliyuncs.com/acs/tensorflow-mnist-sample:v1.5
        name: tensorflow-mnist
        command:
        - python
        - tensorflow-sample-code/tfjob/docker/mnist/main.py
        - --max_steps=100000
        - --data_dir=tensorflow-sample-code/data
        resources:
          limits:
            nvidia.com/gpu: 1  # Request one GPU card for this container.
        workingDir: /root
      restartPolicy: Always
  3. Exécutez la commande suivante pour entrer dans le pod :

    kubectl exec -ti tensorflow-mnist -- ls /dev/gdrdrv

    Résultat attendu :

    /dev/gdrdrv

    Le résultat indique que le périphérique gdrdrv a été monté avec succès.

FAQ

Désactiver la fonctionnalité native d'isolation GPU

Contexte

Lorsqu'un GPU sur un nœud tombe en panne, ACK isole automatiquement le GPU défaillant à l'aide du plug-in de périphérique NVIDIA pour empêcher le planificateur de lui assigner des tâches. Cependant, cette isolation automatique n'effectue pas de réparation automatique. Vous devez toujours redémarrer ou réparer manuellement le nœud. Nous vous recommandons de configurer des alertes pour les exceptions GPU afin de les traiter rapidement. Pour plus d'informations sur la fonctionnalité native d'isolation GPU du plug-in de périphérique NVIDIA, consultez la page k8s-device-plugin.

  • Après l'isolation, si le nœud ne dispose pas de suffisamment de GPU pour répondre aux exigences d'une tâche (par exemple, une tâche nécessite huit cartes mais seulement sept sont disponibles), le planificateur ne peut pas placer la tâche sur ce nœud, laissant les ressources GPU inutilisées.

  • Lorsque l'état du GPU redevient normal, le système supprime automatiquement l'isolation du périphérique.

  • Si vous devez désactiver l'isolation automatique afin que le nœud continue de signaler les ressources pour les GPU défaillants, reportez-vous à la solution suivante.

Solution

  1. Vérifiez si la fonctionnalité native d'isolation GPU est activée pour le module complémentaire.

    Si elle n'est pas activée, vous n'avez pas besoin d'effectuer les étapes suivantes pour la désactiver.

    Version 1.32 et ultérieure

    Connectez-vous à la console ACK et vérifiez la version de ack-nvidia-device-plugin sur la page Add-ons du cluster cible. Si la version est v0.1.0, la fonctionnalité d'isolation GPU est activée.

    Versions 1.20 à 1.31

    1. Utilisez kubectl pour vous connecter au cluster via Workbench ou CloudShell.

    2. Vérifiez si le plug-in de périphérique NVIDIA a l'isolation GPU activée.

      check_gpu_isolation_enabled() {
          echo "Checking nodes with NVIDIA Device Plugin deployed as static pods that have GPU isolation enabled (i.e., DP_DISABLE_HEALTHCHECKS is not set to 'all')..."
      
          # Get pod names with the expected label.
          pods=$(kubectl get pods -n kube-system -l component=nvidia-device-plugin --no-headers -o custom-columns=":metadata.name" 2>/dev/null)
      
          if [ -z "$pods" ]; then
              echo "No pods found with label 'component=nvidia-device-plugin'."
              return 0
          fi
      
          found=0
          while IFS= read -r pod; do
              [ -z "$pod" ] && continue
      
              # Check if it's a static pod: annotation kubernetes.io/config.source must be "file".
              config_source=$(kubectl get pod "$pod" -n kube-system -o jsonpath='{.metadata.annotations.kubernetes\.io/config\.source}' 2>/dev/null)
      
              if [ "$config_source" != "file" ]; then
                  # Not a static pod (e.g., managed by a DaemonSet), skip.
                  continue
              fi
      
              # Get node name.
              node=$(kubectl get pod "$pod" -n kube-system -o jsonpath='{.spec.nodeName}' 2>/dev/null)
              [ -z "$node" ] && continue
      
              # Check if DP_DISABLE_HEALTHCHECKS is set to "all".
              disabled_value=$(kubectl get pod "$pod" -n kube-system -o jsonpath='{range .spec.containers[*]}{range .env[?(@.name=="DP_DISABLE_HEALTHCHECKS")]}{.value}{"\n"}{end}{end}' 2>/dev/null | head -n1)
      
              # If not set or not equal to "all", health checks are active, which means isolation is enabled.
              if [ -z "$disabled_value" ] || [ "$disabled_value" != "all" ]; then
                  echo "Node: $node, Static Pod: $pod"
                  found=1
              fi
          done <<< "$pods"
      
          if [ "$found" -eq 0 ]; then
              echo "No static pods found with GPU isolation enabled."
          else
              echo "Note: The above nodes will automatically isolate faulty GPUs via the NVIDIA Device Plugin."
          fi
      }
      
      check_gpu_isolation_enabled

      Résultat attendu :

      Checking nodes with NVIDIA Device Plugin deployed as static pods that have GPU isolation enabled (i.e., DP_DISABLE_HEALTHCHECKS is not set to 'all')...
      Node: cn-beijing.192.168.XXX.XXX, Static Pod: nvidia-device-plugin-cn-beijing.192.168.XXX.XXX
      Note: The above nodes will automatically isolate faulty GPUs via NVIDIA Device Plugin.

      Si le résultat contient Note: The above nodes will automatically isolate faulty GPUs via NVIDIA Device Plugin., la fonctionnalité d'isolation GPU est activée.

  2. Désactivez la fonctionnalité d'isolation GPU en mettant à niveau le module complémentaire.

    La fonctionnalité native d'isolation GPU est désactivée par défaut dans la dernière version du module complémentaire NVIDIA Device Plugin. Mettez à niveau le plug-in de périphérique NVIDIA vers la dernière version pour appliquer cette modification.

Rubriques connexes