すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:属性ラベルに基づいて GPU-HPN 仮想ノードにアプリケーションをスケジュールする

最終更新日:Mar 27, 2026

ACS クラスター内の GPU-HPN 仮想ノードは、GPU 属性ラベルを公開しており、アプリケーションコードを変更することなく、特定の GPU モデルまたはネットワークゾーンに Pod をターゲットにすることができます。

前提条件

開始する前に、以下を完了していることを確認してください。

GPU 属性ラベル

すべての GPU-HPN 仮想ノードには、以下のラベルが付与されています。

ラベル 説明
alibabacloud.com/gpu-model-series 仮想ノードで使用される GPU モデル
alibabacloud.com/node-series 仮想ノードの予約済みリソースのタイプ
alibabacloud.com/hpn-zone 高性能ネットワークのゾーン
ご利用のキャパシティ予約でサポートされている GPU モデルを表示するには、チケットを送信してください。

スケジューリング方法の選択

Kubernetes には、特定のノードに Pod をターゲットにする 2 つの方法があります。

方法 仕組み 利用シーン
ノードセレクター 厳密な一致 — Pod を完全に一致するラベル値を持つノードにのみスケジュールします フォールバックなしで特定の GPU モデルに固定する場合
ノードアフィニティ 強い制約 (required) と優先的な制約 (preferred) の両方をサポートします ある GPU モデルを優先しつつ、別のモデルも許容するなど、より柔軟なルールを適用する場合

以下の例では、ノードセレクターを使用します。ノードアフィニティの構文については、Kubernetes ドキュメントをご参照ください。

特定の GPU モデルへの Pod のスケジュール

この例では、特定の GPU モデルを持つ仮想ノードで TensorFlow MNIST トレーニングジョブを実行します。

  1. tensorflow-mnist.yaml」という名前のファイルを作成し、以下の内容を記述します。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: tensorflow-mnist
    spec:
      parallelism: 1
      template:
        metadata:
          labels:
            app: tensorflow-mnist
        spec:
          nodeSelector:
            alibabacloud.com/gpu-model-series: "gpu-example"  # ご利用の GPU モデルに置き換えてください
          containers:
          - name: tensorflow-mnist
            image: registry.cn-beijing.aliyuncs.com/acs/tensorflow-mnist-sample:v1.5
            command:
            - python
            - tensorflow-sample-code/tfjob/docker/mnist/main.py
            - --max_steps=1000
            - --data_dir=tensorflow-sample-code/data
            resources:
              requests:
                cpu: 1
                memory: 1
                nvidia.com/gpu: 1
              limits:
                cpu: 1
                memory: 1
                nvidia.com/gpu: 1
            workingDir: /root
          restartPolicy: Never
  2. Job をデプロイします。

    kubectl apply -f tensorflow-mnist.yaml
  3. Pod のステータスを確認します。

    kubectl get pod -l app=tensorflow-mnist -o wide

    [NODE] 列を確認し、Pod が期待される仮想ノードで実行されていることを確認してください。

    NAMESPACE   NAME                     READY   STATUS    RESTARTS   AGE    IP       NODE                                   NOMINATED NODE   READINESS GATES
    default     tensorflow-mnist-xxx     0/2     Running   0          4h2m   <none>   cn-shanghai-b.cr-u4ub6c3un2mrjlct2l9c  <none>           <none>

    出力は、Pod が `gpu-example` GPU を使用する仮想ノードで実行されていることを示しています。