すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:OSS URLを追加してノードのNVIDIAドライバーバージョンを指定する

最終更新日:Dec 12, 2024

デフォルトでは、Container Service for Kubernetes (ACK) クラスターにインストールされているNVIDIAドライバーのバージョンは、クラスターのタイプとバージョンによって異なります。 使用するCompute Unified Device Architecture (CUDA) ツールキットでNVIDIAドライバーの更新が必要な場合は、クラスターノードにNVIDIAドライバーを手動でインストールする必要があります。 このトピックでは、Object Storage Service (OSS) URLを追加して、ノードプール内のGPU高速化ノードのNVIDIAドライバーバージョンを指定する方法について説明します。

注意事項

  • ACKは、NVIDIAドライバーとCUDAツールキットの互換性を保証するものではありません。 互換性を確認する必要があります。

  • NVIDIAドライバーとNVIDIAコンテナランタイムなどのGPUコンポーネントと共にインストールされているカスタムOSイメージの場合、ACKはNVIDIAドライバーとモニタリングコンポーネントなどの他のGPUコンポーネントとの互換性を保証しません。

  • ノードプールにラベルを追加して、GPU高速化ノードのNVIDIAドライバーのバージョンを指定すると、新しいノードがノードプールに追加された場合にのみ、指定されたNVIDIAドライバーがインストールされます。 ノードプール内の既存のノードにはNVIDIAドライバーがインストールされていません。 既存のノードにNVIDIAドライバーをインストールする場合は、これらのノードをノードプールから削除し、ノードプールに再追加する必要があります。 詳細については、「ノードの削除」および「既存のECSインスタンスをACKクラスターに追加」をご参照ください。

  • OSSバケットにアップロードしたNVIDIAドライバーを使用する場合、NVIDIAドライバーは、OS、Elastic Compute Service (ECS) インスタンスタイプ、またはコンテナランタイムと互換性がない可能性があります。 その結果、NVIDIAドライバーがインストールされているGPU高速化ノードの追加に失敗します。 ACKは、すべてのノードがクラスターに正常に追加できることを保証するものではありません。

  • ecs.gn7.xxxxxおよびecs.ebmgn7.xxxxインスタンスタイプは、NVIDIAドライバーバージョン510.xxxおよび515.xxxと互換性がありません。 ecs.gn7.xxxxxおよびecs.ebmgn7.xxxxインスタンスタイプの場合、470.xxx. x1PINSGHEN xxx、または525.125.06以降のバージョンなど、510.xxxより前でGPUシステムプロセッサ (GSP) が無効になっているドライバーバージョンを使用することを推奨します。

  • P100、T4、V100、A10など、さまざまなNVIDIAモデルで必要なNVIDIAドライバーのバージョンの詳細については、「NVIDIA公式ドキュメント」をご参照ください。

ステップ1: NVIDIAドライバーをダウンロードする

[NVIDIAドライバーのバージョンがACKでサポートされている] リストに目的のNVIDIAドライバーのバージョンが含まれていない場合は、NVIDIA公式サイトからドライバーをダウンロードできます。 この例では、NVIDIAドライバのバージョンは515.86.01です。 次の図の [検索] をクリックしてダウンロードページを開き、ドライバーNVIDIA-Linux-x86_64-515.86.01.runをオンプレミスマシンにダウンロードします。

image.png

ステップ2: NVIDIA Fabric Managerをダウンロードする

NVIDIA YUMリポジトリからNVIDIA Fabric Managerをダウンロードします。 NVIDIA Fabric Managerのバージョンは、NVIDIAドライバーのバージョンと同じである必要があります。

wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel7/x86_64/nvidia-fabric-manager-515.86.01-1.x86_64.rpm

手順3: OSSバケットの作成

OSSコンソールにログインし、OSSバケットを作成します。 詳しくは、「バケットの作成」をご参照ください。

説明

ACKクラスターは、NVIDIAドライバーのインストール時に内部ネットワークを介してOSSバケットからドライバーをプルする必要があるため、ACKクラスターが存在するリージョンにOSSバケットを作成することをお勧めします。

手順4: NVIDIAドライバーとnvidia-fabric-managerをOSSバケットにアップロード

  1. OSS コンソールにログインします。 左側のナビゲーションウィンドウで、[バケット] をクリックします。 作成したOSSバケットを検索し、NVIDIA-Linux-x86_64-515.86.01.runおよびnvidia-fabric-manager-515.86.01-1.x86_64.rpmをバケットのルートディレクトリにアップロードします。

    詳細については、「オブジェクトのアップロード」をご参照ください。

    重要

    ファイルがバケットのルートディレクトリにアップロードされ、サブディレクトリにはアップロードされないようにしてください。

  2. バケットページの左側のナビゲーションウィンドウで、[ファイル] > [オブジェクト] を選択し、アップロードしたドライバーファイルの [操作] 列の [詳細の表示] をクリックして詳細を表示します。

  3. [詳細の表示] パネルで、[HTTPS] をオフにしてHTTPSを無効にします。

    重要

    ACKがクラスターを作成すると、ACKはHTTP URLからNVIDIAドライバーをプルします。 デフォルトでは、OSSバケットはHTTPSを使用します。 したがって、HTTPSを無効にする必要があります。

  4. バケットの詳細ページの左側のナビゲーションウィンドウで、[概要] をクリックして、バケットの内部エンドポイントを取得します。

    重要

    外部エンドポイントからNVIDIAドライバーをプルするプロセスは遅く、ACKがGPUアクセラレーションされたノードをクラスターに追加できない場合があります。 NVIDIAドライバーは、内部エンドポイント (-internalキーワード) または高速化ドメイン名 (oss-accelerateキーワード) からプルすることを推奨します。

ステップ5: ノードプールを作成し、ノードプールにラベルを追加する

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[ノード] > [ノードプール] を選択します。

  3. 右上隅の [ノードプールの作成] をクリックします。 [ノードプールの作成] ダイアログボックスで、ノードプールのパラメーターを設定します。

    下表に、各パラメーターを説明します。 パラメーターの詳細については、「ACK管理クラスターの作成」をご参照ください。

    1. [詳細オプションの表示] をクリックします。

    2. [ノードラベル] セクションで、1アイコンをクリックして次のラベルを追加します

      1. 最初のラベル: Keyフィールドにack.aliyun.com/nvidia-driver-oss-endpointを入力し、手順4で取得したOSSバケットの内部エンドポイントをValueフィールドに入力します。 この例では、内部エンドポイントはmy-nvidia-driver.oss-cn-beijing-internal.aliyuncs.comです。

      2. 2番目のラベル: キーフィールドにack.aliyun.com/nvidia-driver-runfileを入力し、ステップ1でダウンロードしたNVIDIAドライバーの名前をフィールドに入力します。 この例では、NVIDIAドライバーの名前はNVIDIA-Linux-x86_64-515.86.01.runです。

      3. 3番目のラベル: キーフィールドにack.aliyun.com/nvidia-fabricmanager-rpmを入力し、ステップ2でダウンロードしたNVIDIA Fabric Managerファイルの名前をフィールドに入力します。 この例では、NVIDIA Fabric Managerファイルの名前はnvidia-fabric-manager-515.86.01-1.x86_64.rpmです。

    3. パラメーターを設定したら、注文の確認.

ステップ6: 指定されたNVIDIAドライバのバージョンがインストールされているかどうかを確認する

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. ACKコンソールで、管理するクラスターを選択し、[操作] 列の [詳細] > [クラウドシェルを開く] を選択します。

  3. 次のコマンドを実行して、component: nvidia-device-pluginラベルを持つポッドを照会します。

    kubectl get po -n kube-system -l component=nvidia-device-plugin -o wide

    期待される出力:

    NAME                                            READY   STATUS    RESTARTS   AGE   IP              NODE                       NOMINATED NODE   READINESS GATES
    nvidia-device-plugin-cn-beijing.192.168.1.127   1/1     Running   0          6d    192.168.1.127   cn-beijing.192.168.1.127   <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.1.128   1/1     Running   0          17m   192.168.1.128   cn-beijing.192.168.1.128   <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.8.12    1/1     Running   0          9d    192.168.8.12    cn-beijing.192.168.8.12    <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.8.13    1/1     Running   0          9d    192.168.8.13    cn-beijing.192.168.8.13    <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.8.14    1/1     Running   0          9d   

    出力は、node列に新しく追加されたノードのポッドの名前がnvidia-device-plugin-cn-beijing.192.168.1.128であることを示します。

  4. 次のコマンドを実行して、ノードのNVIDIAドライバーバージョンを照会します。

    kubectl exec -ti nvidia-device-plugin-cn-beijing.192.168.1.128 -n kube-system -- nvidia-smi

    期待される出力:

    image.png

    出力は、NVIDIAドライバーのバージョンが515.86.01であることを示します。 指定されたNVIDIAドライバがインストールされます。

その他の方法

APIを呼び出してACKクラスターを作成またはスケールアウトする場合、ノードプール設定にNVIDIAドライバーのOSS URLを追加できます。 サンプルコード:

{
  // Other fields are not shown.
  ......
    "tags": [
      {
              "key": "ack.aliyun.com/nvidia-driver-oss-endpoint",
              "value": "xxxx"
      },
      {
        "key": "ack.aliyun.com/nvidia-driver-runfile",
        "value": "xxxx"
      },
      {
        "key": "ack.aliyun.com/nvidia-fabricmanager-rpm",
        "value": "xxxx"
      }
    ],
  // Other fields are not shown.
  ......
}