Pourquoi l'installation de mon pilote GPU NVIDIA échoue-t-elle sur les nœuds de travail RHEL 9?

Cloud privé virtuel Infrastructure classique

Lorsque vous essayez d'installer les pilotes GPU NVIDIA sur les nœuds de travail Red Hat Enterprise Linux 9, l'installation échoue avec une erreur de référentiel.

Vous voyez un message d'erreur dans les journaux du pod nvidia-driver-daemonset-* similaire à ce qui suit :

Error: Unable to find a match: kernel-headers-VERSION kernel-devel-VERSION

Exemple :

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'opérateur GPU NVIDIA n'active pas tous les dépôts Extended Update Support (EUS) requis pour les nœuds de travail RHEL 9. Bien que les référentiels EUS soient désormais activés pour les nœuds de travail RHEL 9 dans Red Hat OpenShift on IBM Cloud, l'installation du pilote NVIDIA nécessite une configuration supplémentaire du référentiel.

Appliquez un ConfigMap pour activer les dépôts EUS nécessaires à l'installation du pilote GPU NVIDIA.

  1. Connectez-vous en mode SSH à l'un de vos nœuds de travail RHEL 9 pour récupérer les valeurs de configuration du référentiel requises.

    oc debug node/<worker-node-name>
    
  2. Accéder au système de fichiers de l'hôte.

    chroot /host
    
  3. Consultez la configuration du référentiel Red Hat pour récupérer les valeurs requises.

    cat /etc/yum.repos.d/redhat.repo
    
  4. Dans le résultat, localisez la section [rhel-9-for-x86_64-appstream-eus-rpms] et notez les valeurs suivantes :

    • baseurl- La base URL pour le référentiel
    • sslclientkey- Chemin d'accès à la clé du client SSL (contient un numéro de série du certificat)
    • sslclientcert- Le chemin d'accès au certificat du client SSL (contient le même numéro de série du certificat)

    Le numéro de série du certificat apparaît dans les chemins d'accès sslclientkey et sslclientcert. Par exemple, si les chemins sont /etc/pki/entitlement-host/1234567890123456789-key.pem et /etc/pki/entitlement-host/1234567890123456789.pem, le numéro de série du certificat est 1234567890123456789.

  5. Quitter la session de débogage.

    exit
    exit
    
  6. Créez un fichier ConfigMap nommé nvidia-driver-repo-config.yaml avec le contenu suivant. Remplacez NAMESPACE-GPU par l'espace de noms dans lequel le pilote GPU est installé, BASEURL par la base URL que vous avez récupérée, et remplacez les deux instances de CERT-SERIAL par le numéro de série de votre certificat.

    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
    
  7. Appliquez le site ConfigMap à votre cluster.

    oc apply -f nvidia-driver-repo-config.yaml
    
  8. Modifiez la politique de cluster pour ajouter le site ConfigMap à la section repoConfig.

    oc edit clusterpolicy
    
  9. Ajoutez le champ configMapName à la section spec.repoConfig avec le nom de votre ConfigMap.

    spec:
      ...
      repoConfig:
        configMapName: nvidia-driver-repo-config
      ...
    
  10. Supprimez les pods du daemonset du pilote NVIDIA pour les recycler et appliquer la nouvelle configuration.

oc delete po nvidia-driver-daemonset-*

Après le redémarrage des pods, l'opérateur GPU de NVIDIA peut accéder aux référentiels EUS requis et installer avec succès les pilotes GPU sur vos nœuds de travail RHEL 9.