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

Container Service for Kubernetes:ノードの NVIDIA ドライバーの手動更新

最終更新日:Jun 19, 2026

CUDA の新しいバージョンが必要な場合に、GPU アクセラレーションに対応した ACK ノードの NVIDIA ドライバーを更新します。

前提条件

次の条件が満たされていることを確認してください。

  • クラスターにアクセスできる kubectl が設定されていること

  • 対象の GPU アクセラレーションノードへの SSH アクセス権があること

  • NVIDIA 公式サイトから新しい NVIDIA ドライバーの .run ファイルがノードにダウンロードされていること

  • (条件付き) 必要に応じて、対応する NVIDIA Fabric Manager の .rpm パッケージ (ステップ3のサブステップ5 を参照)

ステップ1:ノードの cordon と drain

  1. GPU アクセラレーションノードをスケジュール不可に設定します。

    kubectl cordon <NODE_NAME>

    <NODE_NAME> を対象ノード名に置き換えます。想定される出力は次のとおりです。

    node/<NODE_NAME> cordoned
  2. ノードからワークロード Pod を退避させます。

    kubectl drain <NODE_NAME> --grace-period=120 --ignore-daemonsets=true

    --grace-period=120 は、Pod のグレースフルシャットダウン時間を最大120秒に設定します。--ignore-daemonsets=true は DaemonSet で管理される Pod をスキップします。これらの Pod は次のステップで処理します。想定される出力は次のとおりです。

    There are pending nodes to be drained:
     <NODE_NAME>

ステップ2:現在の NVIDIA ドライバーのアンインストール

  1. ノードにログインし、kubelet と containerd を停止します。これにより、kubectl drain で退避できない GPU 参照を保持している DaemonSet Pod が終了します。

    sudo systemctl stop kubelet containerd
  2. GPU デバイスを使用しているプロセスが残っていないか確認します。

    sudo fuser -v /dev/nvidia*

    出力がない場合は、GPU 参照を保持しているプロセスはありません。次のサブステップに進みます。出力がある場合は、表示された各プロセスを終了します。例:

                         USER        PID ACCESS COMMAND
    /dev/nvidia0:        root       3781 F.... dcgm-exporter
    /dev/nvidiactl:      root       3781 F...m dcgm-exporter

    プロセスを終了します。

    sudo kill 3781

    プロセスが残らなくなるまで sudo fuser -v /dev/nvidia* を再度実行します。

  3. 現在の NVIDIA ドライバーをアンインストールします。

    sudo nvidia-uninstall
  4. (オプション) NVIDIA Fabric Manager がインストールされている場合はアンインストールします。インストールされているかどうかを確認します。

    sudo rpm -qa | grep ^nvidia-fabric-manager

    出力がない場合、NVIDIA Fabric Manager はインストールされていません。このステップはスキップします。インストールされている場合は、アンインストールします。

    sudo yum remove nvidia-fabric-manager

ステップ3:新しい NVIDIA ドライバーのインストール

  1. 新しいドライバーをインストールします。以下は NVIDIA-Linux-x86_64-510.108.03.run を使用した例です。

    sudo bash NVIDIA-Linux-x86_64-510.108.03.run -a -s -q
  2. インストールを検証します。

    sudo nvidia-smi

    出力に新しいドライバーのバージョンが表示されます。以下は 510.108.03 の例です。

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 510.108.03   Driver Version: 510.108.03   CUDA Version: 11.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 V100-SXM2...  Off  | 00000000:00:07.0 Off |                    0 |
    | N/A   35C    P0    40W / 300W |      0MiB / 32768MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
  3. インストール後に必要な設定を適用します。

    sudo nvidia-smi -pm 1 || true                            # Persistence mode を有効化
    sudo nvidia-smi -acp 0 || true                           # 権限を UNRESTRICTED に設定
    sudo nvidia-smi --auto-boost-default=0 || true           # Auto boost mode を無効化
    sudo nvidia-smi --auto-boost-permission=0 || true        # 管理者以外のユーザーが Auto boost mode を制御できるようにする
    sudo nvidia-modprobe -u -c=0 -m || true                  # NVIDIA unified memory カーネルモジュールをロードし、デバイスファイルを作成
  4. (オプション) 起動時に NVIDIA ドライバーをロードするには、/etc/rc.d/rc.local に次の内容が含まれていることを確認してください。

    sudo nvidia-smi -pm 1 || true
    sudo nvidia-smi -acp 0 || true
    sudo nvidia-smi --auto-boost-default=0 || true
    sudo nvidia-smi --auto-boost-permission=0 || true
    sudo nvidia-modprobe -u -c=0 -m || true
  5. NVIDIA Fabric Manager が必要かどうかを確認します。NVSwitch ベースのマルチ GPU インターコネクトを持つノードでは、このマネージャーが必要です。

    sudo lspci | grep -i 'Bridge:.*NVIDIA'

    出力がない場合、NVIDIA Fabric Manager は必要ありません。出力がある場合は、NVIDIA YUM リポジトリから対応する NVIDIA Fabric Manager パッケージをダウンロードします。パッケージのバージョンはドライバーのバージョンと一致している必要があります。NVIDIA Fabric Manager をインストールして起動します。

    # NVIDIA Fabric Manager をインストール
    sudo yum localinstall nvidia-fabric-manager-510.108.03-1.x86_64.rpm
    
    # 起動時に NVIDIA Fabric Manager を有効化
    sudo systemctl enable nvidia-fabricmanager.service
    
    # NVIDIA Fabric Manager を起動
    sudo systemctl start nvidia-fabricmanager.service
  6. kubelet と containerd を再起動します。

    sudo systemctl restart containerd kubelet

ステップ4:ノードのクラスターへの復帰

ノードをスケジュール可能に設定します。

kubectl uncordon <NODE_NAME>

<NODE_NAME> をノード名に置き換えます。Kubernetes はノードへの Pod のスケジューリングを再開します。