Perché l'installazione del driver della GPU NVIDIA fallisce sui nodi worker di RHEL 9?
Virtual Private Cloud Infrastruttura classica
Quando si tenta di installare i driver della GPU NVIDIA sui nodi worker Red Hat Enterprise Linux 9, l'installazione fallisce con un errore del repository.
Nei log del pod nvidia-driver-daemonset-* viene visualizzato un messaggio di errore simile al seguente:
Error: Unable to find a match: kernel-headers-VERSION kernel-devel-VERSION
Ad esempio:
Error: Unable to find a match: kernel-headers-5.14.0-570.112.1.el9_6.x86_64 kernel-devel-5.14.0-570.112.1.el9_6.x86_64
L'Operatore GPU NVIDIA non abilita tutti i repository Extended Update Support (EUS) richiesti per i nodi worker di RHEL 9. Mentre i repository EUS sono ora abilitati per i nodi worker di RHEL 9 in Red Hat OpenShift on IBM Cloud, l'installazione del driver NVIDIA richiede un'ulteriore configurazione del repository.
Applicare un ConfigMap per abilitare i repository EUS richiesti per l'installazione del driver della GPU NVIDIA.
-
SSH a uno dei nodi worker di RHEL 9 per recuperare i valori di configurazione del repository richiesti.
oc debug node/<worker-node-name> -
Accedere al file system dell'host.
chroot /host -
Visualizzare la configurazione del repository Red Hat per recuperare i valori richiesti.
cat /etc/yum.repos.d/redhat.repo -
Nell'output, individuare la sezione
[rhel-9-for-x86_64-appstream-eus-rpms]e annotare i seguenti valori:baseurl- La base URL per il repositorysslclientkey- Il percorso della chiave client SSL (contiene il numero di serie del certificato)sslclientcert- Il percorso del certificato client SSL (contiene lo stesso numero di serie del certificato)
Il numero di serie del certificato appare in entrambi i percorsi
sslclientkeyesslclientcert. Ad esempio, se i percorsi sono/etc/pki/entitlement-host/1234567890123456789-key.peme/etc/pki/entitlement-host/1234567890123456789.pem, il numero di serie del certificato è1234567890123456789. -
Esce dalla sessione di debug.
exit exit -
Creare un file ConfigMap chiamato
nvidia-driver-repo-config.yamlcon il seguente contenuto. SostituireNAMESPACE-GPUcon lo spazio dei nomi in cui è installato il driver della GPU,BASEURLcon la base URL recuperata e sostituire entrambe le istanze diCERT-SERIALcon il numero di serie del certificato.apiVersion: v1 kind: ConfigMap metadata: name: nvidia-driver-repo-config namespace: NAMESPACE-GPU data: rhel9.repo: | [ibm-rhel-9-for-x86_64-appstream-eus-rpms] name = Red Hat Enterprise Linux 9 for x86_64 - AppStream - Extended Update Support (RPMs) baseurl = BASEURL/pulp/repos/customer/Library/content/eus/rhel9/9.6/x86_64/appstream/os enabled = 1 gpgcheck = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release sslverify = 1 sslcacert = /etc/rhsm-host/ca/katello-server-ca.pem sslclientkey = /etc/pki/entitlement-host/CERT-SERIAL-key.pem sslclientcert = /etc/pki/entitlement-host/CERT-SERIAL.pem metadata_expire = 1 enabled_metadata = 0 -
Applicare il sito ConfigMap al cluster.
oc apply -f nvidia-driver-repo-config.yaml -
Modificare il criterio del cluster per aggiungere ConfigMap alla sezione
repoConfig.oc edit clusterpolicy -
Aggiungete il campo
configMapNamealla sezionespec.repoConfigcon il nome del vostro ConfigMap.spec: ... repoConfig: configMapName: nvidia-driver-repo-config ... -
Eliminare i pod del driver daemonset NVIDIA per eliminarli e applicare la nuova configurazione.
oc delete po nvidia-driver-daemonset-*
Dopo il riavvio dei pod, il GPU Operator di NVIDIA può accedere ai repository EUS richiesti e installare con successo i driver GPU sui nodi worker RHEL 9.