Setup GPU resources in Hybrid Manager#

このガイドを使用して、ハイブリッドマネージャーHCP KubernetesクラスターのGPUリソースを準備して、KServeでのモデルサービングをサポートします。

GPU対応ノードをプロビジョニングし、KServe用に構成し、NVIDIA NIMモデルを展開するために必要なシークレットを保存します。

ゴール#

KServeを使用してGPUベースのモデルサービングワークロードを実行するようにHCPクラスターを準備します。

推定時間#

20〜40分クラウドプロバイダーによっては、プロビジョニングにもっと時間がかかる場合があります。

あなたが達成すること#

  • HCPクラスターにGPUノードグループまたはノードプールをプロビジョニングします。

  • GPUノードを正しくラベル付けとテイントします。

  • NVIDIAデバイスプラグインDaemonSetを展開します。

  • NVIDIA APIキーをKubernetesシークレットとして保存します。

  • クラスターがKServeでNIMモデルコンテナを実行できるようにします。

これによりアンロックされるもの#

この手順を完了すると、モデル提供を介してサポートされているGPUアクセラレーションモデルを展開できます。

  • AIDBナレッジベースの場合。

  • GenAI Builderアシスタントの場合。

  • カスタムモデルベースのアプリケーションの場合。

前提条件#

  • 適切な権限によるHCP Kubernetesクラスターへのアクセス。

  • プロビジョニングノードグループAWS EKS / GCP GKE / RHOSへの管理アクセス。

  • NIMモデルにアクセスするためのNVIDIA APIキー。

  • 基本的なkubectl の使用法に精通していること。

GPUノードのプロビジョニング#

HCPクラスターにGPUノードグループEKSまたはノードプールGKE / RHOSをプロビジョニングします。

  • L40SまたはA100 GPUたとえば、AWSのg6e.12xlarge またはGCPのa2-highgpu-4g を使用したインスタンスを使用します。

  • 推奨 Llama 70Bなどの大規模なモデルをサポートするには、4つのGPUを備えた少なくとも1つのノードをプロビジョニングします。

GPUノードのラベル付けとテイント#

次のKubernetesラベルとテイントをGPUノードに適用します。

レーベル

kubectl label node <gpu-node-name> nvidia.com/gpu=true
``` `

テイント

```shell
kubectl taint nodes <gpu-node-name> nvidia.com/gpu=true:NoSchedule

これにより、KServeモデルポッドが正しくスケジュールされ、PostgresクラスターがGPUノードに着陸しないことが保証されます。

NVIDIAデバイスプラグインを展開する#

NVIDIAデバイスプラグインDaemonSetを展開します。

kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.14.1/nvidia-device-plugin.yml

プラグインが実行されていることを確認します。

kubectl get ds -n kube-system nvidia-device-plugin-daemonset

プラグインは、GPUリソースをKubernetesとKServeに公開します。

NVIDIA APIキーをKubernetesシークレットとして保存する#

NGCカタログポータルからNVIDIA APIキーを生成します。

Kubernetesシークレットを作成します。

kubectl create secret generic nvidia-nim-secrets --from-literal=NGC_API_KEY=<your_NVIDIA_API_KEY>

このシークレットは、NIMモデルのClusterServingRuntime リソースを展開するときに必要です。

関連概念#

次のステップ#