为什么我的 NVIDIA GPU 驱动程序在 RHEL 9 工作节点上安装失败?
虚拟私有云 传统基础设施
当您尝试在 Red Hat Enterprise Linux 9 工作节点上安装 NVIDIA GPU 驱动程序时,安装会失败,并出现版本库错误。
您会在 nvidia-driver-daemonset-* pod 日志中看到类似下面的错误信息:
Error: Unable to find a match: kernel-headers-VERSION kernel-devel-VERSION
例如:
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
NVIDIA GPU 操作员无法为 RHEL 9 工作节点启用所有必需的扩展更新支持 (EUS) 资源库。 虽然 EUS 资源库已在 Red Hat OpenShift on IBM Cloud 中为 RHEL 9 工作节点启用,但 NVIDIA 驱动程序的安装需要额外的资源库配置。
应用 ConfigMap 启用 NVIDIA GPU 驱动程序安装所需的 EUS 资源库。
-
通过 SSH 连接到其中一个 RHEL 9 工作节点,获取所需的版本库配置值。
oc debug node/<worker-node-name> -
访问主机文件系统
chroot /host -
查看 Red Hat 资源库配置,检索所需数值。
cat /etc/yum.repos.d/redhat.repo -
从输出结果中找到
[rhel-9-for-x86_64-appstream-eus-rpms]部分,并记下以下值:baseurl- 资源库的基本 URLsslclientkey- SSL 客户端密钥的路径(包含证书序列号)sslclientcert- SSL 客户端证书的路径(包含相同的证书序列号)
证书序列号同时出现在
sslclientkey和sslclientcert路径中。 例如,如果路径是/etc/pki/entitlement-host/1234567890123456789-key.pem和/etc/pki/entitlement-host/1234567890123456789.pem,证书序列号就是1234567890123456789。 -
退出调试会话。
exit exit -
创建 ConfigMap 文件,文件名为
nvidia-driver-repo-config.yaml,内容如下。 将NAMESPACE-GPU替换为安装 GPU 驱动程序的命名空间,将BASEURL替换为您获取的基本 URL,并将CERT-SERIAL的两个实例都替换为您的证书序列号。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 -
将 ConfigMap 应用到群集。
oc apply -f nvidia-driver-repo-config.yaml -
编辑群集策略,将 ConfigMap 添加到
repoConfig部分。oc edit clusterpolicy -
将
configMapName字段添加到spec.repoConfig部分,并输入您的 ConfigMap 名称。spec: ... repoConfig: configMapName: nvidia-driver-repo-config ... -
删除 NVIDIA 驱动程序守护进程 pod,使其循环并应用新配置。
oc delete po nvidia-driver-daemonset-*
pod 重启后,NVIDIA GPU 操作员可以访问所需的 EUS 资源库,并在 RHEL 9 工作节点上成功安装 GPU 驱动程序。