SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

②NVIDIA Networkingで構築するAIクラスタ検証 - NVIDIA GPU Operator構築編 -

AI
2026.09.17

こんにちは。SB C&S の野木です。

本記事では、弊社検証環境に構築したAIクラスタを題材に、NVIDIA GPU Operatorを用いてKubernetes環境からGPUを利用するための環境構築手順をご紹介します。

今回ご紹介する内容は、AIクラスタ構築シリーズの第2回となります。

1回の記事では、NVIDIA Spectrum™-4 Ethernetスイッチの初期構築手順をご紹介していますので併せてご覧ください。
①NVIDIA Networkingで構築するAIクラスタ検証 Spectrum スイッチ 初期構築編

また、NVIDIA Networking製品の概要については、以下の過去記事で紹介していますので、こちらも併せてご覧いただくことをおすすめします。
【連載】AI時代をリードする NVIDIA Networking のご紹介

なお、本記事で紹介する設定およびコマンドは、弊社検証環境で使用したNVIDIA GPU Operator v26.3.3をもとに確認しています。

バージョンによって設定方法、展開されるコンポーネントなどが異なる場合があるため、ご利用の環境に応じて最新のNVIDIA公式ドキュメントをご確認ください。
NVIDIA GPU Operator

AIクラスタ構築の全体構成

スクリーンショット 2026-09-07 163203.png

本シリーズでは、NVIDIA Networkingを活用したAIクラスタの構築をテーマに、ネットワークスイッチの初期設定からGPUサーバー側の構築までを順を追ってご紹介します。

一般的なAIクラスタでは、GPUを搭載した複数台のベアメタルサーバーをKubernetesクラスタとして構成し、高速ネットワークを介して各GPUサーバーを接続する構成が広く採用されています。

一方、本シリーズでは社内検証環境の構成上、1台の物理サーバー上に仮想基盤(VMware vSphere)を構築し、その上にKubernetes Control Plane 1台、Worker Node 2台の計3台の仮想マシンを配置しています。

GPU処理を行うWorker Nodeには、それぞれNVIDIA L40S GPU1枚、およびNVIDIA ConnectX®-7 NIC1枚ずつPCIeパススルーで割り当てることで、2台のGPUサーバーを疑似的に再現しています。

また、Worker Node間はNVIDIA Spectrum™-4 Ethernetスイッチ SN5600を介して接続し、高速ネットワークを利用したGPUサーバー間通信を行う構成としています。

本シリーズでは、この検証環境を用いて以下の内容を順番にご紹介します。

今回はシリーズ第2回として、NVIDIA GPU OperatorKubernetesクラスタへ導入し、Worker Nodeに搭載されたGPUKubernetesから利用できる環境を構築します。

AIクラスタでKubernetesが利用される理由

GPUを利用するAI基盤にはさまざまな構成があり、GPUサーバー上でAIワークロードを直接実行するベアメタル環境のほか、Dockerなどのコンテナ技術を利用する構成も広く利用されています。

ベアメタル環境はシンプルに構成できる一方で、サーバーごとの環境管理が必要になります。

また、コンテナを利用することで実行環境を統一しやすくなりますが、GPUサーバーやコンテナの数が増えると、それらを個別に管理する運用負荷が大きくなります。

そこで、複数のサーバーやコンテナをまとめて管理する仕組みとして、Kubernetesなどのコンテナオーケストレーションプラットフォームが利用されています。

Kubernetesでは、複数のGPUサーバーをクラスタとして一元管理し、Podの配置やスケールなどを自動化できます。

AIクラスタでKubernetesが利用される理由.pngまた、Kubernetesのほかにも、Kubernetesをベースにエンタープライズ向けの機能を提供するRed Hat OpenShiftなどがあり、用途や運用要件に応じてさまざまなプラットフォームが利用されています。

本検証では、複数のGPUサーバーを一元管理し、GPUを利用するAIワークロードを効率的に実行するための基盤としてKubernetesを採用しています。

NVIDIA GPU Operatorとは

Kubernetes上でNVIDIA GPUを利用するためには、GPU DriverContainer ToolkitDevice Pluginなど、GPUの利用に必要な複数のソフトウェアコンポーネントを導入する必要があります。

NVIDIA GPU Operatorは、これらのコンポーネントをKubernetes上へ自動的に展開・管理するためのツールです。

NVIDIA GPU Operatorとは.png

GPU Operatorを利用することで、各GPUサーバーに必要なコンポーネントを個別に導入・管理する必要がなくなり、Kubernetes上でGPUを利用するための環境を効率的に構築できます。

GPU Operatorが管理する主なコンポーネントには、以下のようなものがあります。

  • NVIDIA GPU DriverOSからNVIDIA GPUを利用するためのドライバー
  • NVIDIA Container Toolkit:コンテナからNVIDIA GPUを利用するためのランタイム環境
  • NVIDIA Device PluginGPUKubernetesのリソースとして認識させ、PodへのGPU割り当てを可能にするコンポーネント
  • DCGM ExporterGPUの使用率や温度などのメトリクスを収集・公開するコンポーネント
  • GPU Feature DiscoveryGPUの種類や機能などの情報を検出し、KubernetesNode Labelとして登録するコンポーネント
  • Node Feature Discovery:各ノードのハードウェアや機能に関する情報を検出するコンポーネント

このようにGPU Operatorを利用することで、Kubernetes上でNVIDIA GPUを利用するために必要な環境をまとめて導入・管理できます。

NVIDIA GPU Operator導入前の前提条件

NVIDIA GPU Operatorを導入する前に、GPUを搭載したサーバーやKubernetesクラスタなどの環境を準備しておく必要があります。

本検証では、1台の物理サーバーにNVIDIA L40S GPU2枚搭載し、VMware vSphere上に3台のUbuntu Serverを構築しています。

3台のうち1台をControl Plane2台をWorker NodeとしてKubernetesクラスタを構成し、各Worker NodeにはNVIDIA L40S GPU1枚ずつPCIeパススルーで割り当てています。

また、GPU Operatorの導入にはHelmを使用するため、事前にHelmを導入しています。

スクリーンショット 2026-09-08 112231.png

KubernetesのインストールやHelmの導入手順については本記事では割愛しますが、以下の公式ドキュメントから手順を確認できます。

インストールするバージョンや対応環境については、最新の公式ドキュメントをご確認ください。
Kubernetesドキュメント
Helmのインストール

以上の環境を構築済みの状態から、NVIDIA GPU Operatorの導入を進めていきます。

NVIDIA GPU Operatorの構築手順

NVIDIA GPU Operatorは、NGCで提供されているHelm Chartを利用してKubernetesクラスタへ導入します。

※NGCNVIDIA GPU Cloud)は、NVIDIAAIソフトウェアやコンテナイメージ、Helm Chartなどを提供するカタログサービスです。
NGC Catalog - NVIDIA GPU Operator -

※Helm Chartは、Kubernetes上にアプリケーションを展開するために必要な設定ファイルなどをまとめたパッケージです。Helmを使用することで、Helm ChartをもとにアプリケーションをKubernetesクラスタへ展開できます。

NVIDIA GPU Operatorの構築手順.png

本検証では、以下の流れでGPU Operatorの導入からGPUを利用できることの確認までを行います。

STEP1NGCNVIDIA Helm Repositoryを登録
GPU Operator
Helm Chartを取得するため、NGCで提供されているNVIDIA Helm RepositoryHelmに登録します。

STEP2GPU Operatorのインストール
Helm
を使用して、GPU OperatorKubernetesクラスタへインストールします。

STEP3GPU Operator関連のPodを確認
GPU Operator
によって展開された各Podが正常に起動していることを確認します。

STEP4KubernetesからGPUを利用できることを確認
GPU
Kubernetesのリソースとして認識されていることを確認し、GPUを割り当てたPodからGPUを利用できることを確認します。

次章から、それぞれの手順を実際のコマンドと実行結果を確認しながら進めていきます。

NVIDIA GPU Operatorを構築してみる

STEP1 NVIDIA Helm Repositoryの登録

でははじめに、NVIDIA GPU OperatorHelm Chartを取得するため、NVIDIA Helm Repositoryを登録します。

まず、以下のコマンドを実行してNGCで提供されているNVIDIA Helm Repositoryを登録し、Repositoryの情報を更新します。

helm repo add nvidia https://helm.ngc.nvidia.com/nvidia
helm repo update

本検証では検証時点の最新バージョンであるNVIDIA GPU Operator v26.3.3を使用します。

そのため、以下のコマンドで対象バージョンのHelm Chartが取得可能であることを確認します。

利用するGPU Operatorのバージョンについては、最新の公式ドキュメントをご確認ください。

helm search repo nvidia/gpu-operator --versions | grep 26.3.3

##出力スクリーンショット 2026-09-01 162140.png

実行結果に「v26.3.3」が表示されることを確認します。

以上で、NVIDIA GPU OperatorをインストールするためのHelm Repositoryの準備は完了です。

STEP2 GPU Operatorのインストール

NVIDIA Helm Repositoryの準備が完了したら、Helmを使用してNVIDIA GPU OperatorKubernetesクラスタへインストールします。

以下のコマンドを実行して、NVIDIA GPU Operator v26.3.3をインストールします。

helm install --wait --generate-name \
-n gpu-operator --create-namespace \
nvidia/gpu-operator \
--version=v26.3.3

主なオプションの内容は以下のとおりです。

  • --waitGPU Operatorのリソースが利用可能な状態になるまで待機します。
  • --generate-nameHelm Releaseの名前を自動生成します。
  • -n gpu-operatorGPU Operatorgpu-operator Namespaceへインストールします。
  • --create-namespace指定したNamespaceが存在しない場合に新しく作成します。
  • --version=v26.3.3インストールするGPU Operatorのバージョンを指定します。

##出力
スクリーンショット 2026-09-01 163013.png

実行結果に「STATUS: deployed」と表示され、GPU Operatorのインストールが完了したことを確認します。

また、以下のコマンドを実行することで、インストールされたHelm Releaseの状態を確認できます。

helm list -A

##出力スクリーンショット 2026-09-01 163517.png

GPU OperatorReleaseが表示され、STATUSdeployedとなっていることを確認します。

以上で、NVIDIA GPU Operatorのインストールは完了です。

次に、GPU Operatorによって展開された各Podが正常に動作していることを確認します。

STEP3 GPU Operator関連Podの確認

GPU Operatorのインストールが完了したら、GPU Operatorによって展開された各Podが正常に動作していることを確認します。

以下のコマンドを実行して、「gpu-operator」の Namespaceに展開されたPodを確認します。

kubectl get pods -n gpu-operator

##出力スクリーンショット 2026-09-01 165348.png

PodSTATUSが「Running」となっていることを確認します。

GPU Operatorによって、「NVIDIA GPU Driver」や「NVIDIA Container Toolkit」、「Device Plugin」など、GPUを利用するために必要なコンポーネントがPodとして展開されていることを確認できます。

なお、「nvidia-cuda-validator-*」は検証処理を実行する一時的なPodのため、処理が正常に完了すると「Completed」と表示されます。

Podと主な役割は以下のとおりです。

Pod

主な役割

gpu-operator-*

GPU Operator本体。GPU関連コンポーネントの展開・管理を行います。

nvidia-driver-daemonset-*

GPU NodeNVIDIA GPU Driverを展開します。

nvidia-container-toolkit-daemonset-*

コンテナからGPUを利用するための環境を構成します。

nvidia-device-plugin-daemonset-*

GPUKubernetesのリソースとして認識させ、PodへのGPU割り当てを可能にします。

gpu-feature-discovery-*

GPUの情報を検出し、Node Labelとして登録します。

node-feature-discovery-*

Nodeに搭載されたハードウェアや機能を検出します。

nvidia-dcgm-exporter-*

GPUの使用率や温度などのメトリクスを収集・公開します。

nvidia-operator-validator-*

GPU Operatorによって構築された環境が正常に利用できることを検証します。

nvidia-cuda-validator-*

CUDAを使用した処理を実行し、GPUがコンテナから正常に利用できることを検証します。

続いて、各Nodeに搭載されたGPUKubernetesのリソースとして認識されていることを確認します。

以下のコマンドを実行して、各Nodeで利用可能なGPUリソース数を確認します。

kubectl get nodes \
-o custom-columns=NAME:.metadata.name,\
GPU:.status.allocatable.nvidia\.com/gpu

##出力スクリーンショット 2026-09-01 172712.png

実行結果から、各GPU Nodeの「GPU」に「1」と表示されていることを確認します。

これは、GPU Operatorによって展開されたNVIDIA Device Pluginにより、各Nodeに搭載されたGPUが「nvidia.com/gpu」というKubernetesのリソースとして認識され、Podへ割り当て可能なGPUがそれぞれ1基存在することを示しています。

以上の結果から、GPU OperatorによってGPUKubernetesから利用するための環境が正常に構築されていることを確認できました。

続いて、実際にGPUを使用するPodを作成し、PodからGPUを利用できることを確認します。

STEP4 GPUを利用するPodの作成

NodeGPUKubernetesのリソースとして認識されていることを確認できたため、続いてGPUを利用するPodを作成し、Pod内からGPUを利用できることを確認します。

本検証では、2台のWorker NodeそれぞれにGPU1基ずつ搭載しているため、各Worker Nodeを指定したテスト用Podを作成します。

まず、以下のコマンドを実行して「cx7-ubuntu01」上に「gpu-test-vm1Podを作成します。

cat <<'EOF' | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: gpu-test-vm1
spec:
  nodeName: cx7-ubuntu01
  restartPolicy: Never
  containers:
  - name: cuda
    image: nvidia/cuda:13.2.0-base-ubuntu24.04
    command: ["nvidia-smi"]
    resources:
      limits:
        nvidia.com/gpu: 1
EOF

続いて、「cx7-ubuntu02」上にも同様に「gpu-test-vm2Podを作成します。

cat <<'EOF' | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: gpu-test-vm2
spec:
  nodeName: cx7-ubuntu02
  restartPolicy: Never
  containers:
  - name: cuda
    image: nvidia/cuda:13.2.0-base-ubuntu24.04
    command: ["nvidia-smi"]
    resources:
      limits:
        nvidia.com/gpu: 1
EOF

上記のPodでは、nodeNameNode名を指定することで、それぞれのPodを対象のWorker Node上で実行します。

また、resources.limitsnvidia.com/gpu: 1を指定することで、各PodGPU1基要求するように設定しています。

Podの作成後、以下のコマンドを実行してPodの状態と配置先Nodeを確認します。

kubectl get pod -o wide

##出力スクリーンショット 2026-09-01 174742.png

gpu-test-vm1」が「cx7-ubuntu01」、「gpu-test-vm2」が「cx7-ubuntu02」にそれぞれ配置され、「STATUS」が「Completed」となっていることを確認します。

最後に、以下のコマンドを実行して各Podのログを確認します。

kubectl logs gpu-test-vm1

kubectl logs gpu-test-vm2

##出力
スクリーンショット 2026-09-08 130013.png

それぞれのPodで実行された「nvidia-smi」の結果に「NVIDIA L40S」が表示されることを確認します。

以上の結果から、2台のWorker Nodeに搭載されたNVIDIA L40SKubernetesのリソースとして正常に割り当てられ、Pod内からGPUを利用できることを確認できました。

まとめ

スクリーンショット 2026-09-07 163403.png

本記事では、AIクラスタ構築シリーズの第2回として、GPU OperatorによってGPUの利用に必要なコンポーネントを展開し、各Worker Nodeに搭載されたNVIDIA L40SKubernetes上のPodから利用できることを確認しました。

GPU Operatorを活用することで、GPUの利用に必要な複数のコンポーネントを個別に導入・管理する必要がなくなり、Kubernetes上のGPU環境を効率的に構築・運用できます。

次回はNVIDIA Network Operatorの基礎編としてAIクラスタにおけるHCA/NICの役割やNVIDIA Network Operatorの概要についてご紹介します。

その他のNVIDIA技術情報ブログはこちら

著者紹介

SB C&S株式会社
ICT事業本部 技術本部 第1技術統括部
第2技術部 1課
野木 空良 - Sora Nogi -

サーバー・ネットワークを中心として、AIインフラ全般のプリセールス業務に従事。