Cette page explique comment résoudre les problèmes liés aux TPU dans Google Kubernetes Engine (GKE).
Si vous avez besoin d'une aide supplémentaire, contactez Cloud Customer Care.
Installation des pilotes de GPU
Cette section fournit des informations de dépannage pour l'installation automatique des pilotes d'appareil NVIDIA dans GKE.
L'installation du pilote échoue dans les nœuds Ubuntu
Si vous utilisez des nœuds Ubuntu associés à des GPU L4 ou H100, le pilote GPU par défaut installé par GKE peut ne pas être à la version requise pour ces GPU ou une version ultérieure. Par conséquent, le pod du plug-in de l'appareil GPU reste bloqué à l'état "En attente", et vos charges de travail GPU sur ces nœuds peuvent rencontrer des problèmes.
Pour résoudre ce problème, nous vous recommandons de passer aux versions GKE suivantes, qui installent la version 535 du pilote de GPU par défaut :
- 1.26.15-gke.1483000 et versions ultérieures
- 1.27.15-gke.1039000 et versions ultérieures
- 1.28.11-gke.1044000 et versions ultérieures
- 1.29.6-gke.1073000 et versions ultérieures
- 1.30.2-gke.1124000 et versions ultérieures
Vous pouvez également installer manuellement la version 535 ou ultérieure du pilote en exécutant la commande suivante :
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/ubuntu/daemonset-preloaded-R535.yaml
Les plug-ins d'appareils GPU échouent avec des erreurs CrashLoopBackOff
Le problème suivant se produit si vous avez utilisé la méthode d'installation manuelle des pilotes dans votre pool de nœuds avant le 25 janvier 2023, puis que vous avez mis à niveau votre pool de nœuds vers une version de GKE compatible avec l'installation automatique des pilotes. Les deux charges de travail d'installation existent en même temps et tentent d'installer des versions de pilotes en conflit sur vos nœuds.
Le conteneur d'initialisation du plug-in de l'appareil GPU échoue avec l'état Init:CrashLoopBackOff
. Les journaux du conteneur sont semblables à ceux-ci :
failed to verify installation: failed to verify GPU driver installation: exit status 18
Essayez les solutions suivantes pour résoudre ce problème :
Supprimez le DaemonSet d'installation manuelle du pilote de votre cluster. Cela supprime la charge de travail d'installation en conflit et permet à GKE d'installer automatiquement un pilote sur vos nœuds.
kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml
Réappliquez le fichier manifeste du DaemonSet d'installation manuelle des pilotes à votre cluster. Le 25 janvier 2023, nous avons mis à jour le fichier manifeste pour ignorer les nœuds qui utilisent l'installation automatique du pilote.
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml
Désactivez l'installation automatique des pilotes pour votre pool de nœuds. Le DaemonSet d'installation de pilote existant devrait fonctionner comme prévu une fois l'opération de mise à jour terminée.
gcloud container node-pools update POOL_NAME \ --accelerator=type=GPU_TYPE,count=GPU_COUNT,gpu-driver-version=disabled \ --cluster=CLUSTER_NAME \ --location=LOCATION
Remplacez les éléments suivants :
POOL_NAME
: nom du pool de nœuds.GPU_TYPE
: type de GPU déjà utilisé par le pool de nœuds.GPU_COUNT
: nombre de GPU déjà associés au pool de nœuds.CLUSTER_NAME
: nom du cluster GKE contenant le pool de nœuds.LOCATION
: emplacement Compute Engine du cluster.
Erreur : "L'image de conteneur cos-nvidia-installer:fixed n'est pas présente avec la stratégie d'extraction "Never" (Jamais)" ou "L'image de conteneur ubuntu-nvidia-installer:fixed n'est pas présente avec la stratégie d'extraction "Never" (Jamais)"
Ce problème se produit lorsque les pods nvidia-driver-installer
sont à l'état PodInitializing
et que l'appareil de plug-in GPU ou les pods d'installation du pilote GPU signalent l'erreur suivante. Le message d'erreur spécifique dépend du système d'exploitation exécuté sur votre nœud :
COS
Container image "cos-nvidia-installer:fixed" is not present with pull policy of Never.
Ubuntu
Container image "gke-nvidia-installer:fixed" is not present with pull policy of Never.
Ce problème peut se produire lorsque le récupérateur de mémoire supprime l'image du pilote NVIDIA préchargée pour libérer de l'espace sur un nœud. Lorsque le pod du pilote est recréé ou que son conteneur est redémarré, GKE ne peut pas localiser l'image préchargée.
Pour atténuer le problème de récupération de mémoire lorsque vous exécutez COS, mettez à niveau vos nœuds GKE vers l'une de ces versions contenant le correctif :
- 1.25.15-gke.1040000 et versions ultérieures
- 1.26.10-gke.1030000 et versions ultérieures
- 1.27.6-gke.1513000 et versions ultérieures
- 1.28.3-gke.1061000 et versions ultérieures
Si vos nœuds exécutent Ubuntu, aucune solution n'est encore disponible pour ce problème de récupération de mémoire. Pour atténuer ce problème sur Ubuntu, vous pouvez exécuter un conteneur avec privilèges qui interagit avec l'hôte afin de garantir la configuration correcte des pilotes de GPU NVIDIA. Pour ce faire, exécutez sudo /usr/local/bin/nvidia-container-first-boot
à partir de votre nœud ou appliquez le fichier manifeste suivant :
apiVersion: v1
kind: Pod
metadata:
name: gke-nvidia-installer-fixup
spec:
nodeSelector:
cloud.google.com/gke-os-distribution: ubuntu
hostPID: true
containers:
- name: installer
image: ubuntu
securityContext:
privileged: true
command:
- nsenter
- -at
- '1'
- --
- sh
- -c
- "/usr/local/bin/nvidia-container-first-boot"
restartPolicy: Never
Le problème peut également se produire lorsque les images du pilote NVIDIA sont perdues après le redémarrage du nœud ou la maintenance de l'hôte. Cela peut se produire sur des nœuds confidentiels ou des nœuds avec GPU qui utilisent un stockage SSD local éphémère. Dans ce cas, GKE charge en mémoire les images de conteneur nvidia-installer-driver
sur les nœuds et les déplace du disque de démarrage vers le SSD local lors du premier démarrage.
Pour confirmer qu'un événement de maintenance de l'hôte s'est produit, utilisez le filtre de journal suivant :
resource.type="gce_instance"
protoPayload.serviceName="compute.googleapis.com"
log_id("cloudaudit.googleapis.com/system_event")
Pour résoudre le problème de maintenance de l'hôte, mettez à niveau votre version de GKE vers l'une des versions suivantes :
- 1.27.13-gke.1166000 et versions ultérieures
- 1.29.3-gke.1227000 et versions ultérieures
- 1.28.8-gke.1171000 et versions ultérieures
Erreur : Échec de la configuration des répertoires d'installation du pilote GPU : Échec de la création de la superposition lib64 : Échec de la création du répertoire /usr/local/nvidia/lib64 : mkdir /usr/local/nvidia/lib64 ne correspond à aucun répertoire.
Vous rencontrez cette erreur à partir du conteneur d'installation du pilote de GPU dans le plug-in de l'appareil GPU lorsque NCCL fastsocket est activé :
failed to configure GPU driver installation dirs: failed to create lib64 overlay: failed to create dir /usr/local/nvidia/lib64: mkdir /usr/local/nvidia/lib64: not a directory.
Ce problème ne se produit que sur les clusters et les nœuds exécutant GKE 1.28 et 1.29.
Le problème est dû à une condition de concurrence fastsocket NCCL avec le programme d'installation du pilote de GPU.
Pour résoudre ce problème, mettez à niveau votre version de GKE vers l'une des versions suivantes :
- 1.28.8-gke.1206000 et versions ultérieures
- 1.29.3-gke.1344000 et versions ultérieures
Erreur : Impossible d'obtenir l'appareil nvidia0 : l'appareil nvidia0 n'a pas été trouvé.
L'erreur suivante indique que XID 62 et RmInitAdapter ont échoué pour le GPU avec la version mineure 0 :
Failed to get device for nvidia0: device nvidia0 not found.
Le pilote NVIDIA version 525.105.17 présente un bug qui peut entraîner des erreurs de communication (XID) et empêcher le GPU de s'initialiser correctement, ce qui entraîne un échec de l'initialisation du GPU.
Pour résoudre ce problème, mettez à niveau le pilote NVIDIA vers la version 525.110.11 ou une version ultérieure.
Étape suivante
Si vous avez besoin d'une aide supplémentaire, contactez Cloud Customer Care.