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

Container Service for Kubernetes:FPGA ノードへのワークロードのスケジュール

最終更新日:Mar 26, 2026

Container Service for Kubernetes (ACK) クラスター内の FPGA アクセラレーテッドノードには、FPGA ハードウェア属性を公開する専用のノードラベルが付与されています。これらのラベルをワークロードの nodeSelector で使用すると、Pod が FPGA ノードにのみ配置されるようになり、通常のワークロードが FPGA キャパシティを消費するのを防ぐことができます。

前提条件

開始する前に、以下を準備してください。

FPGA ノードラベル

FPGA アクセラレーテッドノードを ACK クラスターに追加すると、ACK は FPGA ハードウェアを記述するノードラベルを自動的にアタッチします。スケジューリングには、次のラベルが使用されます。

ラベル説明
fpga.k8s.aliyun.comf3Elastic Compute Service (ECS) f3 FPGA インスタンス

このラベルをワークロード仕様の nodeSelector として設定し、FPGA ノードをターゲットにします。対応する FPGA リソースキーを持つ resources.limits を設定して、FPGA ユニットをリクエストします。

ステップ 1: FPGA ノードラベルの表示

方法 1: ACK コンソール

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. クラスター]ページで、対象のクラスターを見つけ、その名前をクリックします。左側のナビゲーションウィンドウで、[ノード] > [ノード]を選択します。

  3. [ノード]」ページで、FPGA 加速ノードを見つけ、[操作] 列の [その他] > [詳細] を選択します。ノードにアタッチされたラベルを表示します。ノードの詳細

方法 2: kubectl

  1. クラスター内のすべてのノードをリスト表示します。

    kubectl get nodes

    期待される出力:

    NAME                       STATUS   ROLES    AGE     VERSION
    cn-beijing.192.168.XX.X1   Ready    <none>   3h51m   v1.18.8-aliyun.1
    cn-beijing.192.168.XX.X2   Ready    <none>   3h41m   v1.18.8-aliyun.1
  2. FPGA アクセラレーテッドノードを記述して、そのラベルを表示します。

    kubectl describe node cn-beijing.192.168.XX.X2

    期待される出力:

    Name:               cn-beijing.192.168.XX.X2
    Roles:              <none>
    Labels:             ack.aliyun.com=c05888610e***
                        alibabacloud.com/nodepool-id=npfda879b6***
                        beta.kubernetes.io/arch=amd64
                        beta.kubernetes.io/instance-type=ecs.f3-c4f1.xlarge
                        beta.kubernetes.io/os=linux
                        failure-domain.beta.kubernetes.io/region=cn-beijing
                        failure-domain.beta.kubernetes.io/zone=cn-beijing-h
                        fpga.k8s.aliyun.com=f3
                        kubernetes.io/arch=amd64
                        kubernetes.io/hostname=cn-beijing.192.168.XX.X2
                        kubernetes.io/os=linux
                        node.kubernetes.io/instance-type=ecs.f3-c4f1.xlarge
                        topology.diskplugin.csi.alibabacloud.com/zone=cn-beijing-h
                        topology.kubernetes.io/region=cn-beijing
                        topology.kubernetes.io/zone=cn-beijing-h

    fpga.k8s.aliyun.com=f3 ラベルは、これが Elastic Compute Service (ECS) f3 FPGA インスタンスであることを識別します。次のステップでこのラベルを使用してノードをターゲットにします。

ステップ 2: Pod を FPGA アクセラレーテッドノードにスケジュールする

次のジョブ仕様では、nodeSelector: fpga.k8s.aliyun.com: f3 を使用して f3 FPGA ノードをターゲットにし、xilinx.com/fpga-aliyun-f3: 1 を使用して 1 つの FPGA ユニットをリクエストします。

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスタ] をクリックします。

  2. [クラスター] ページで、クラスターを探してその名前をクリックします。 左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. [デプロイメント] ページで、[YAML から作成] をクリックします。

  4. サンプルテンプレートのドロップダウンリストからカスタムテンプレートを選択し、次のコンテンツを [テンプレート] フィールドにコピーします。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: fpga-run-task1
    spec:
      backoffLimit: 0
      completions: 1
      parallelism: 1
      template:
        spec:
          nodeSelector:
            fpga.k8s.aliyun.com: f3
          containers:
          - image: <your image>
            imagePullPolicy: Always
            name: fpga-run-task1
            resources:
              limits:
                xilinx.com/fpga-aliyun-f3: 1
            securityContext:
              privileged: true

    <your image> の値をカスタムイメージのアドレスに置き換えます。

  5. [作成] をクリックします。 クラスター詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [Pod] を選択します。 Pod のリストで、指定された Pod が必要な FPGA アクセラレーテッドノードにスケジュールされていることを確認できます。 ラベルを使用すると、特定の FPGA アクセラレーテッドノードに Pod を簡単にスケジュールできます。