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
リソースを展開するときに必要です。