Risoluzione dei problemi — GPU
GPU non rilevata nella VM
Causa: il campo gpus non è configurato nel manifest, o il PCI passthrough non ha correttamente collegato la GPU alla VM.
Soluzione:
-
Verificate che il campo
gpussia presente nel vostro manifest:vm-gpu.yamlspec:
gpus:
- name: "nvidia.com/AD102GL_L40S" -
Nella VM, verificate il rilevamento PCI:
lspci | grep -i nvidia -
Verificate che il modulo kernel NVIDIA sia caricato:
lsmod | grep nvidia -
Se nessun risultato, i driver non sono installati. Consultate la sezione seguente.
Driver NVIDIA mancanti
Causa: i driver NVIDIA non sono installati nella VM, o i kernel header non corrispondono alla versione del kernel.
Soluzione:
-
Installate i prerequisiti e i driver tramite cloud-init o manualmente:
sudo apt-get update
sudo apt-get install -y linux-headers-$(uname -r)
sudo apt-get install -y nvidia-driver-550 nvidia-utils-550 -
Riavviate la VM dopo l'installazione:
sudo reboot -
Verificate l'installazione:
nvidia-smi
Per automatizzare l'installazione, utilizzate il campo cloudInit nel vostro manifest VM affinché i driver vengano installati al primo avvio.
Pod GPU in stato Pending
Causa: nessun nodo con GPU disponibile, la configurazione GPU del cluster è assente, o il GPU Operator non è attivo.
Soluzione:
-
Verificate gli eventi del pod:
kubectl describe pod <pod-name>Cercate il messaggio
Insufficient nvidia.com/gpu. -
Verificate che esistano nodi GPU con GPU allocabili:
kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, gpu: .status.allocatable["nvidia.com/gpu"]}' -
Verificate la configurazione del nodeGroup GPU nel manifest del cluster:
cluster.yamlspec:
nodeGroups:
gpu-workers:
minReplicas: 1
maxReplicas: 4
instanceType: "u1.2xlarge"
gpus:
- name: "nvidia.com/AD102GL_L40S" -
Assicuratevi che l'addon GPU Operator sia attivato:
cluster.yamlspec:
addons:
gpuOperator:
enabled: true
nvidia-smi fallisce in un pod
Causa: il GPU Operator non è attivato sul cluster, il che impedisce l'installazione automatica dei driver e la messa a disposizione del device plugin.
Soluzione:
-
Attivate l'addon GPU Operator sul cluster:
cluster.yamlspec:
addons:
gpuOperator:
enabled: true -
Applicate la modifica:
kubectl apply -f cluster.yaml -
Verificate che i pod del GPU Operator siano in esecuzione:
kubectl get pods -n gpu-operator -
Una volta che il GPU Operator è operativo, ricreate il vostro pod GPU.
GPU Operator non funzionante
Causa: l'addon non è attivato, i pod dell'operatore sono in errore, o i nodi non hanno GPU fisiche.
Soluzione:
-
Verificate che l'addon sia attivato nel manifest del cluster:
cluster.yamlspec:
addons:
gpuOperator:
enabled: true -
Verificate lo stato dei pod del GPU Operator:
kubectl get pods -n gpu-operator
kubectl describe pod -n gpu-operator <pod-name> -
Verificate che i nodi possiedano hardware GPU:
kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, gpu: .status.capacity["nvidia.com/gpu"]}' -
Se i pod sono in
CrashLoopBackOff, consultate i log:kubectl logs -n gpu-operator <pod-name>