RHEL 9 워커 노드에서 NVIDIA GPU 드라이버 설치가 실패하는 이유는 무엇인가요?

가상 프라이빗 클라우드 클래식 인프라

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 운영자는 RHEL 9 워커 노드에 필요한 모든 EUS(확장 업데이트 지원) 리포지토리를 활성화하지 않습니다. 이제 EUS 리포지토리는 Red Hat OpenShift on IBM Cloud 에서 RHEL 9 워커 노드에 사용할 수 있지만 NVIDIA 드라이버를 설치하려면 추가 리포지토리 구성이 필요합니다.

NVIDIA GPU 드라이버 설치에 필요한 EUS 리포지토리를 활성화하려면 ConfigMap 을 적용하세요.

  1. 필요한 리포지토리 구성 값을 검색하려면 RHEL 9 워커 노드 중 하나에 SSH로 접속하세요.

    oc debug node/<worker-node-name>
    
  2. 호스트 파일 시스템에 액세스합니다.

    chroot /host
    
  3. Red Hat 리포지토리 구성을 참조하여 필요한 값을 검색하세요.

    cat /etc/yum.repos.d/redhat.repo
    
  4. 출력에서 [rhel-9-for-x86_64-appstream-eus-rpms] 섹션을 찾아 다음 값을 기록합니다:

    • baseurl- 리포지토리의 기본 URL
    • sslclientkey- SSL 클라이언트 키 경로(인증서 일련 번호 포함)
    • sslclientcert- SSL 클라이언트 인증서 경로(동일한 인증서 일련 번호 포함)

    인증서 일련 번호는 sslclientkeysslclientcert 경로에 모두 표시됩니다. 예를 들어 경로가 /etc/pki/entitlement-host/1234567890123456789-key.pem/etc/pki/entitlement-host/1234567890123456789.pem 인 경우 인증서 일련 번호는 1234567890123456789 입니다.

  5. 디버그 세션을 종료합니다.

    exit
    exit
    
  6. 다음 내용으로 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
    
  7. ConfigMap 을 클러스터에 적용합니다.

    oc apply -f nvidia-driver-repo-config.yaml
    
  8. 클러스터 정책을 편집하여 repoConfig 섹션에 ConfigMap 을 추가합니다.

    oc edit clusterpolicy
    
  9. spec.repoConfig 섹션에 ConfigMap 이름과 함께 configMapName 필드를 추가합니다.

    spec:
      ...
      repoConfig:
        configMapName: nvidia-driver-repo-config
      ...
    
  10. NVIDIA 드라이버 데몬셋 파드를 삭제하여 주기화하고 새 구성을 적용합니다.

oc delete po nvidia-driver-daemonset-*

파드가 재시작된 후, NVIDIA GPU 운영자는 필요한 EUS 리포지토리에 액세스하여 RHEL 9 워커 노드에 GPU 드라이버를 성공적으로 설치할 수 있습니다.