NVIDIA GPUドライバのインストールがRHEL 9のワーカーノードで失敗するのはなぜですか?
仮想プライベートクラウド クラシック・インフラストラクチャー Satellite
Red Hat Enterprise Linux 9 ワーカーノードに NVIDIA GPU ドライバをインストールしようとすると、リポジトリエラーでインストールに失敗します。
nvidia-driver-daemonset-* のポッドログに、以下のようなエラーメッセージが表示されます:
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 Operatorは、RHEL 9ワーカーノードで必要なすべてのExtended Update Support (EUS)リポジトリを有効にしません。 Red Hat OpenShift on IBM Cloud の RHEL 9 ワーカー・ノードでは EUS リポジトリが有効になっていますが、 NVIDIA ドライバのインストールには追加のリポジトリ設定が必要です。
NVIDIA GPU ドライバのインストールに必要な EUS リポジト リを有効にするために、 ConfigMap を適用します。
-
RHEL 9 ワーカーノードの 1 つに SSH して、必要なリポジトリ設定値を取得します。
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 -
以下の内容で、
nvidia-driver-repo-config.yamlという名前の ConfigMap ファイルを作成する。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 -
spec.repoConfigセクションに、 ConfigMap の名前でconfigMapNameフィールドを追加する。spec: ... repoConfig: configMapName: nvidia-driver-repo-config ... -
NVIDIA ドライバのデーモンセット・ポッドを削除して循環させ、新しい設定を適用する。
oc delete po nvidia-driver-daemonset-*
ポッドの再起動後、 NVIDIA GPU Operator は必要な EUS リポジトリにアクセスし、RHEL 9 ワーカーノードに GPU ドライバを正常にインストールできます。