Warum schlägt die Installation meines NVIDIA GPU-Treibers auf RHEL 9 Worker Nodes fehl?
Virtuelle Private Cloud Klassische Infrastruktur
Wenn Sie versuchen, NVIDIA GPU-Treiber auf Red Hat Enterprise Linux 9 Worker Nodes zu installieren, schlägt die Installation mit einem Repository-Fehler fehl.
In den Pod-Protokollen von nvidia-driver-daemonset-* wird eine Fehlermeldung ähnlich der folgenden angezeigt:
Error: Unable to find a match: kernel-headers-VERSION kernel-devel-VERSION
Zum Beispiel:
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
Der NVIDIA GPU Operator aktiviert nicht alle erforderlichen Extended Update Support (EUS) Repositories für RHEL 9 Worker Nodes. Während EUS-Repositories jetzt für RHEL 9 Worker Nodes in Red Hat OpenShift on IBM Cloud aktiviert sind, erfordert die Installation des NVIDIA Treibers eine zusätzliche Repository-Konfiguration.
Wenden Sie eine ConfigMap an, um die erforderlichen EUS-Repositories für die Installation des NVIDIA GPU-Treibers zu aktivieren.
-
Verbinden Sie sich per SSH mit einem Ihrer RHEL 9 Worker Nodes, um die erforderlichen Repository-Konfigurationswerte abzurufen.
oc debug node/<worker-node-name> -
Zugriff auf das Host-Dateisystem.
chroot /host -
Rufen Sie die Red Hat Repository-Konfiguration auf, um die erforderlichen Werte abzurufen.
cat /etc/yum.repos.d/redhat.repo -
Suchen Sie in der Ausgabe den Abschnitt
[rhel-9-for-x86_64-appstream-eus-rpms]und notieren Sie die folgenden Werte:baseurl- Die Basis URL für das Repositorysslclientkey- Der Pfad zum SSL Client-Schlüssel (enthält eine Zertifikatsseriennummer)sslclientcert- Der Pfad zum SSL Client-Zertifikat (enthält die gleiche Zertifikatsseriennummer)
Die Seriennummer des Zertifikats erscheint sowohl im Pfad
sslclientkeyals auchsslclientcert. Wenn die Pfade beispielsweise/etc/pki/entitlement-host/1234567890123456789-key.pemund/etc/pki/entitlement-host/1234567890123456789.pemsind, lautet die Seriennummer des Zertifikats1234567890123456789. -
Beenden Sie die Debug-Sitzung.
exit exit -
Erstellen Sie eine Datei ConfigMap mit dem Namen
nvidia-driver-repo-config.yamlund folgendem Inhalt. Ersetzen SieNAMESPACE-GPUdurch den Namespace, in dem der GPU-Treiber installiert ist,BASEURLdurch die Basis URL, die Sie abgerufen haben, und ersetzen Sie beide Instanzen vonCERT-SERIALdurch die Seriennummer Ihres Zertifikats.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 -
Wenden Sie die ConfigMap auf Ihren Cluster an.
oc apply -f nvidia-driver-repo-config.yaml -
Bearbeiten Sie die Cluster-Richtlinie, um die ConfigMap zum Abschnitt
repoConfighinzuzufügen.oc edit clusterpolicy -
Fügen Sie das Feld
configMapNamein den Abschnittspec.repoConfigmit dem Namen Ihres ConfigMap ein.spec: ... repoConfig: configMapName: nvidia-driver-repo-config ... -
Löschen Sie die NVIDIA Treiber-Daemonset-Pods, um sie zu beenden und die neue Konfiguration anzuwenden.
oc delete po nvidia-driver-daemonset-*
Nach dem Neustart der Pods kann der NVIDIA GPU Operator auf die erforderlichen EUS-Repositories zugreifen und die GPU-Treiber erfolgreich auf Ihren RHEL 9 Worker Nodes installieren.