GPUノード

Prev Next

VPC環境で利用できます。

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

注意
  • NAVERクラウドプラットフォームが提供する GPUサーバは NVIDIAの Multi-Instance GPU(MIG)機能をサポートしません。安定したサービス運用のために提供される基本 GPU設定を使用する必要があります。
  • GPUノードは KRリージョンでのみ使用できます。
  • GPUノードでのみ構成されたクラスタは使用上の制限があります。
  • Ncloud Kubernetes Serviceのデフォルトオブジェクトは一般ノードを必要とするため、一般ノードプールと GPUノードプールを一緒に構成します。
参考

Nvidia 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のような特別なハードウェア機能にアクセスできます。詳しい内容と使用方法は公式サイトで確認できます。