ACK クラスターは、クラスターのタイプとバージョンに応じて、異なるデフォルトの NVIDIA ドライバーバージョンをインストールします。 GPU ノードに上位のドライバーバージョンをインストールするには、カスタムドライバーを OSS にアップロードし、ノードプールラベルを設定して OSS URL 経由でプルします。
注意事項
ACK は、GPU ドライバーバージョンと CUDA ライブラリバージョンの互換性を保証しません。 お客様の責任で互換性を確認してください。
さまざまな NVIDIA GPU モデルの詳細なドライバー要件については、「NVIDIA の公式ドキュメント」をご参照ください。
GPU ドライバー、NVIDIA Container Runtime、またはその他の GPU コンポーネントがプリインストールされたカスタム OS イメージを使用する場合、ACK は、カスタム GPU ドライバーとモニタリングエージェントなどの他の ACK GPU コンポーネントとの互換性を保証できません。
ノードプールラベルを使用して GPU ドライバーバージョンを指定する場合、ドライバーはプールに追加された新しいノードにのみインストールされます。 既存のノードは影響を受けません。 新しいドライバーを既存のノードに適用するには、ノードをクラスターまたはノードプールから削除し、その後既存のノードを追加する必要があります。
gn7、GPU 高速化コンピューティング最適化インスタンスファミリーおよびGPU コンピューティング最適化: gn、ebm、scc インスタンスタイプは、ドライバーバージョン 510.xxx および 515.xxx との互換性の問題があります。 GPU System Processor (GSP) を無効にした 510 より前のドライバーバージョン (例:470.xxx.xxxx)、またはバージョン 525.125.06 以降を使用してください。
GPU コンピューティング最適化: gn、ebm、scc または Ebmgn7e インスタンスファミリー インスタンスタイプの ECS インスタンスは、NVIDIA ドライバーバージョン 525.125.06 以降のみをサポートします。
バージョン番号を指定して GPU ドライバーのバージョンをカスタマイズするか、OSS URL を使用してカスタマイズした場合、更新後に OS とドライバーに互換性がなくなる可能性があります。「ACK でサポートされている NVIDIA ドライバーのバージョン」を参照して、互換性のあるドライバーを選択してください。
独自の GPU ドライバーを OSS にアップロードすると、OS イメージ、ECS インスタンスタイプ、またはコンテナランタイムとの非互換性が生じ、ノードの作成に失敗する可能性があります。 ACK はこの方法での成功を保証しません。 続行する前に設定を確認してください。
ステップ1:対象ドライバーのダウンロード
ACK でサポートされている NVIDIA ドライバーバージョンに必要なバージョンが含まれていない場合は、NVIDIA の公式サイトからドライバーをダウンロードします。 この例では、バージョン 550.90.07 を使用します。 NVIDIA-Linux-x86_64-550.90.07.run ファイルをローカルマシンにダウンロードします。
ステップ2:NVIDIA Fabric Managerのダウンロード
NVIDIA YUM リポジトリから NVIDIA Fabric Manager をダウンロードします。 Fabric Manager のバージョンは、ドライバーバージョンと一致している必要があります。
wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel7/x86_64/nvidia-fabric-manager-550.90.07-1.x86_64.rpmステップ3:OSS バケットの作成
ACK クラスターと同じリージョンにバケットを作成し、ノードが内部ネットワーク経由でドライバーをプルできるようにします。
ステップ4:OSS バケットへのファイルのアップロード
OSS コンソールにログインし、
NVIDIA-Linux-x86_64-550.90.07.runおよびnvidia-fabric-manager-550.90.07-1.x86_64.rpmファイルをバケットのルートディレクトリにアップロードします。重要ファイルはサブディレクトリではなく、バケットのルートディレクトリにアップロードしてください。
バケットページで、左側のナビゲーションウィンドウの をクリックします。 アップロードしたファイルの アクション 列で、詳細 をクリックします。
詳細 パネルで、HTTPS を使用する スイッチをオフにします。
重要ACK は HTTP 経由でドライバーファイルをプルしますが、OSS はデフォルトで HTTPS になっています。 HTTPS を使用する をオフにして、HTTP アクセスを有効にしてください。
左側のナビゲーションウィンドウで 概要 をクリックします。 ページの下部から内部エンドポイントをコピーします。
重要外部エンドポイントは低速であるため、GPU ノードの作成が失敗する可能性があります。 内部エンドポイント (
-internalを含む) または高速化エンドポイント (oss-accelerateを含む) を使用してください。ファイルのダウンロードに失敗した場合は、バケットのアクセス制御ポリシーを調整してください。
ステップ5:ノードプールラベルの設定
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
ノードプールの作成 をクリックして GPU ノードを追加します。 パラメーターの詳細については、「ノードプールの作成と管理」をご参照ください。 この設定における主要なパラメーターは次のとおりです。
ノードラベル (Labels) セクションで、
アイコンをクリックして次のラベルを追加します。 サンプル値を実際の値に置き換えてください。[キー]
[値]
ack.aliyun.com/nvidia-driver-oss-endpointステップ 4 で取得した OSS バケットの内部エンドポイント。
my-nvidia-driver.oss-cn-beijing-internal.aliyuncs.comack.aliyun.com/nvidia-driver-runfileステップ 1 の NVIDIA ドライバーファイル名。
NVIDIA-Linux-x86_64-550.90.07.runack.aliyun.com/nvidia-fabricmanager-rpmステップ 2 の Fabric Manager ファイル名。
nvidia-fabric-manager-550.90.07-1.x86_64.rpm
ステップ6:ドライバーインストールの確認
component: nvidia-device-pluginラベルを持つ Pod を表示します。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>出力から、新しく追加されたノードの Pod は
nvidia-device-plugin-cn-beijing.192.168.1.128であることがわかります。正しいドライバーバージョンがインストールされていることを確認します。
kubectl exec -ti nvidia-device-plugin-cn-beijing.192.168.1.128 -n kube-system -- nvidia-smi出力例:
+-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.90.07 Driver Version: 550.90.07 CUDA Version: 12.4 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 Tesla P100-PCIE-16GB On | 00000000:00:08.0 Off | Off | | N/A 31C P0 26W / 250W | 0MiB / 16384MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+出力にはドライバーバージョン 550.90.07 が表示されており、カスタム NVIDIA ドライバーが正常にインストールされたことを確認できます。
その他の方法
CreateClusterNodePool API を使用してノードプールを作成する際に、カスタムドライバーの OSS URL を設定することもできます。
{
// 他のセクションは省略されています。
......
"tags": [
{
"key": "ack.aliyun.com/nvidia-driver-oss-endpoint",
"value": "my-nvidia-driver.oss-cn-beijing-internal.aliyuncs.com"
},
{
"key": "ack.aliyun.com/nvidia-driver-runfile",
"value": "NVIDIA-Linux-x86_64-550.90.07.run"
},
{
"key": "ack.aliyun.com/nvidia-fabricmanager-rpm",
"value": "nvidia-fabric-manager-550.90.07-1.x86_64.rpm"
}
],
// 他のセクションは省略されています。
......
}