Container Service for Kubernetes (ACK) クラスターの種類やバージョンによって、デフォルトでインストールされる NVIDIA ドライバーのバージョンは異なります。ご利用の CUDA ライブラリとの互換性のために、より新しいバージョンの NVIDIA ドライバーが必要な場合は、GPU ノード上の NVIDIA ドライバーをカスタマイズできます。このトピックでは、ノードプールのラベルを使用して GPU ノードにカスタム NVIDIA ドライバーバージョンを指定する方法について説明します。
注意事項
-
ACK は、GPU ドライバーバージョンと CUDA ライブラリバージョンの互換性を保証しません。互換性については、お客様自身でご確認いただく必要があります。
-
NVIDIA カードモデルごとのドライバーバージョンの要件に関する詳細については、NVIDIA 公式ドキュメントをご参照ください。
-
GPU ドライバーや NVIDIA Container Runtime などの GPU コンポーネントがすでにインストールされているカスタムオペレーティングシステムイメージの場合、ACK はカスタム GPU ドライバーがモニタリングコンポーネントなど、他の ACK GPU コンポーネントと互換性があることを保証できません。
-
ノードプールのラベルを使用して GPU ドライバーバージョンを指定すると、ノードが追加されるときにドライバーのインストールがトリガーされます。したがって、この方法は新規またはスケールアウトされたノードにのみ適用されます。既存のノードは影響を受けません。既存のノードに新しいドライバーを適用するには、ノードを削除してから再度追加する必要があります。
-
gn7 および ebmgn7 インスタンスタイプは、ドライバーバージョン 510.xxx および 515.xxx との互換性の問題があります。510 より前のドライバーバージョン (例:470.xxx.xxxx) を GSP を無効にして使用するか、ドライバーバージョン 525.125.06 以降を使用できます。
-
ebmgn7 または ebmgn7e インスタンスタイプの Elastic Compute Service (ECS) インスタンスは、NVIDIA ドライバーバージョン 460.32.03 以降のみをサポートします。
ノードプールの作成時に、指定されたドライバーバージョンが ACK がサポートする NVIDIA ドライバーバージョンにリストされていない場合、ACK は自動的にデフォルトのドライバーバージョンをインストールします。最新の OS と互換性のないドライバーバージョンを指定すると、ノードの追加に失敗する可能性があります。このような場合は、常にサポートされている最新のドライバーバージョンを選択してください。
ステップ 1:NVIDIA ドライバーバージョンの決定
ACK でサポートされている NVIDIA ドライバーバージョン から、ビジネス要件を満たす NVIDIA ドライバーバージョンを選択します。このトピックでは、ドライバーバージョン 550.144.03 を例として使用します。
ステップ 2:指定したドライバーバージョンでのノードプールの作成
Container Service for Kubernetes コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
左上隅にある ノードプールの作成 をクリックします。設定項目の詳細については、「ノードプールの作成と管理」をご参照ください。主要な設定は次のとおりです。
ノードラベル (Labels) セクションで、ラベルを追加します。
アイコンをクリックします。次に、キー テキストボックスに ack.aliyun.com/nvidia-driver-versionを入力し、値 テキストボックスに550.144.03を入力します。
ステップ 3:NVIDIA ドライバーのカスタムインストールの確認
-
次のコマンドを実行して、
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 ack-nvidia-device-plugin-fnctc 1/1 Running 0 2m33s 10.117.227.43 cn-qingdao.10.117.XXX.XX <none> <none>出力結果から、[NODE] 列で新しく追加されたノードに対応する Pod 名が
ack-nvidia-device-plugin-fnctcであることがわかります。 -
次のコマンドを実行して、ノードのドライバーバージョンが想定どおりであるかを確認します。
kubectl exec -ti ack-nvidia-device-plugin-fnctc -n kube-system -- nvidia-smi想定される出力:
Mon Mar 24 08:51:55 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.144.03 Driver Version: 550.144.03 CUDA Version: 12.6 | |-----------------------------------------+------------------------+----------------------+ | 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 P4 On | 00000000:00:07.0 Off | 0 | | N/A 33C P8 7W / 75W | 0MiB / 7680MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+出力結果から、ドライバーバージョンが 550.144.03 であることがわかります。これは、カスタム NVIDIA ドライバーがノードに正常にインストールされたことを示します。
その他の方法
CreateClusterNodePool API 操作を使用してノードプールを作成する場合、ノードプールの設定でカスタムドライバーのラベルを設定できます。次のコードは一例です。
{
// その他の部分は省略
......
"tags": [
{
"key": "ack.aliyun.com/nvidia-driver-version",
"value": "550.144.03"
}
],
// その他の部分は省略
......
}