このページでは、Google Distributed Cloud(GDC)Sandbox AI Optimized SKU に GPU コンテナ ワークロードをデプロイする方法について説明します。
GPU コンテナ ワークロードをデプロイする
GDC Sandbox AI Optimized SKU には、org-infra クラスタ内に 4 個の NVIDIA H100 80 GB HBM3 GPU が含まれています。これらの GPU には、リソース名 nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3
を使用してアクセスできます。このセクションでは、これらの GPU を使用するようにコンテナ構成を更新する方法について説明します。
GDC Sandbox AI Optimized SKU の GPU は、事前構成されたプロジェクト「sandbox-gpu-project」に関連付けられています。GPU を使用するには、このプロジェクトを使用してコンテナをデプロイする必要があります。
始める前に
組織のインフラストラクチャ クラスタに対してコマンドを実行するには、クラスタを操作するで説明されているように、
org-1-infra
クラスタの kubeconfig があることを確認します。gdcloud
コマンドラインで構成と認証を行う。- 組織インフラストラクチャ クラスタの kubeconfig ファイルを生成し、そのパスを環境変数
KUBECONFIG
に割り当てます。
ワークロードを実行するには、
sandbox-gpu-admin
ロールが割り当てられている必要があります。デフォルトでは、このロールはplatform-admin
ユーザーに割り当てられます。platform-admin
としてログインし、次のコマンドを実行して、他のユーザーにロールを割り当てることができます。kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \ --user=${USER} --namespace=sandbox-gpu-project
GPU リソースを使用するようにコンテナを構成する
ワークロードの GPU をリクエストするには、コンテナ仕様に
.containers.resources.requests
フィールドと.containers.resources.limits
フィールドを追加します。sandbox-gpu-project 内のすべてのコンテナは、プロジェクト全体で最大 4 個の GPU をリクエストできます。次の例では、コンテナ仕様の一部として 1 つの GPU をリクエストします。apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: sandbox-gpu-project labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest resources: requests: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 limits: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1
コンテナが GPU にアクセスするには、追加の権限も必要です。GPU をリクエストするコンテナごとに、次の権限をコンテナ仕様に追加します。
securityContext: seLinuxOptions: type: unconfined_t
コンテナ マニフェスト ファイルを適用します。
kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \ -n sandbox-gpu-project \ --kubeconfig ${KUBECONFIG}