GPUノード

Prev Next

VPC環境で利用できます。

Ncloud Kubernetes Serviceのワーカーノードとして GPUノードを使用できます。

注意
  • NAVERクラウドプラットフォームで提供する GPUサーバの MIG(Multi-Instance GPU)機能サポートの有無は、ハイパーバイザのタイプに応じて異なります。詳細な内容は、各 GPUノードタイプ別のガイドをご参照ください。
    • XENハイパーバイザ: MIG機能を未サポート
    • KVMハイパーバイザ: MIG機能をサポート
  • GPUノードは KRリージョンでのみ使用できます。
  • GPUノードでのみ構成されたクラスタは使用上の制限があります。
  • Ncloud Kubernetes Serviceのデフォルトオブジェクトは一般ノードを必要とするため、一般ノードプールと GPUノードプールを一緒に構成します。
参考

GPUリソースの使用方法を選択

GPUノードを追加した後、Podで GPUを使用するには、以下の2つの方式からいずれかを選択します。

方式 ドライバ インストール対象 ドキュメント
NVIDIA device plugin サーバイメージにインストールされたドライバを使用 device plugin GPUノード
NVIDIA GPU Operator サーバイメージのドライバまたは GPU Operatorがインストールしたドライバ ドライバ、Container Toolkit、device plugin、モニタリングコンポーネント NVIDIA GPU Operatorの活用

ノードプールごとに GPUモデルが異なる場合や、Kubernetesでドライババージョンを直接指定する必要がある場合、GPU Operatorを使用します。

注意

2つの方式を同じクラスタに同時にインストールしないでください。GPU Operatorが device pluginも一緒にインストールするため、両方の構成が同じ GPUを重複して登録してしまいます。

NVIDIA GPUデバイスプラグインの配置

GPU Operatorを使用しない場合、NVIDIA device pluginのみを配置して GPUリソースを登録できます。GPUプラグインを配置する前は Kubernetesクラスタで GPUリソースを使用できません。
クラスタで GPUノードが運用中に変更された後に NVIDIAデバイスプラグインを配置するには、以下のコマンドを実行します。

1. Helmのインストール

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 \
   && chmod 700 get_helm.sh \
   && ./get_helm.sh

2. NVIDIA device plugin helmの保存場所追加

helm repo add nvdp https://nvidia.github.io/k8s-device-plugin \
   && helm repo update

3. NVIDIA device pluginのリリース

次のコマンドを使って kube-systemの名前空間に NVIDIA device pluginをリリースします。

helm install --generate-name nvdp/nvidia-device-plugin -n kube-system
参考

HELM Chartは NVIDIAで提供しているため、問題が発生した場合は NVIDIA公式サイトで変更有無をご確認ください。

クイックスタートのために簡単な Damonsetを直接リリースすることで GPUリソースを有効化できます。

$ kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.0/deployments/static/nvidia-device-plugin.yml

4. GPUの使用確認

次のコマンドを使ってノードの詳細情報を照会し、GPUリソースの使用可否を確認できます。

$ kubectl describe [node-name]

...
Capacity:
  cpu:                4
  ephemeral-storage:  51341792Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             20474628Ki
  nvidia.com/gpu:     1
  pods:               110
Allocatable:
  cpu:                3920m
  ephemeral-storage:  47316595429
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             17425156Ki
  nvidia.com/gpu:     1
  pods:               110
...

デバイスプラグインを使用する

Kubernetesは、デバイスプラグインを実装して Podが GPUのような特別なハードウェア機能にアクセスできます。詳しい内容と使用方法は公式サイトで確認できます。