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

Container Service for Kubernetes:Knative サービスの GPU リソースを設定し、GPU 共有を有効にする

最終更新日:Jun 17, 2025

AI タスクやハイパフォーマンスコンピューティングなど、GPU リソースを必要とするワークロードを Knative にデプロイするには、Knative サービスで GPU 要件を指定して、GPU アクセラレーション インスタンスを作成します。 さらに、GPU 共有機能を有効にすると、複数のポッドが 1 つの GPU を共有できるようになり、リソース使用率が最大化されます。

前提条件

Knative がクラスターにデプロイされていること。 詳細については、「Knative をデプロイする」をご参照ください。

GPU リソースを設定する

Knative サービスの構成の spec.template.metadata.annotations セクションにアノテーション k8s.aliyun.com/eci-use-specs を追加して、GPU アクセラレーション ECS インスタンスタイプを指定できます。 spec.containers.resources.limits セクションに nvidia.com/gpu フィールドを追加して、Knative サービスで必要な GPU リソースの量を指定できます。

次のコードブロックは例です。

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
spec:
  template:
    metadata:
      labels:
        app: helloworld-go
      annotations:
        k8s.aliyun.com/eci-use-specs: ecs.gn5i-c4g1.xlarge  # Knative でサポートされている GPU アクセラレーション ECS インスタンスタイプを指定します。
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
          ports:
          - containerPort: 8080
          resources:
            limits:
              nvidia.com/gpu: '1'    # コンテナに必要な GPU の数を指定します。このフィールドは必須です。このフィールドを指定しないと、ポッドの起動時にエラーが返されます。

次の GPU アクセラレーション ECS インスタンスファミリーがサポートされています。

  • gn7i。NVIDIA A10 GPU を使用する GPU コンピューティング最適化インスタンスファミリー。 このインスタンスファミリーには、ecs.gn7i-c8g1.2xlarge など、さまざまなインスタンスタイプが含まれています。

  • gn7。このインスタンスファミリーには、ecs.gn7-c12g1.3xlarge など、さまざまなインスタンスタイプが含まれています。

  • gn6v。NVIDIA V100 GPU を使用する GPU コンピューティング最適化インスタンスファミリー。 このインスタンスファミリーには、ecs.gn6v-c8g1.2xlarge など、さまざまなインスタンスタイプが含まれています。

  • gn6e。NVIDIA V100 GPU を使用する GPU コンピューティング最適化インスタンスファミリー。 このインスタンスファミリーには、ecs.gn6e-c12g1.3xlarge など、さまざまなインスタンスタイプが含まれています。

  • gn6i。NVIDIA T4 GPU を使用する GPU コンピューティング最適化インスタンスファミリー。 このインスタンスファミリーには、ecs.gn6i-c4g1.xlarge など、さまざまなインスタンスタイプが含まれています。

  • gn5i。NVIDIA P4 GPU を使用する GPU コンピューティング最適化インスタンスファミリー。 このインスタンスファミリーには、ecs.gn5i-c2g1.large など、さまざまなインスタンスタイプが含まれています。

  • gn5。NVIDIA P100 GPU を使用する GPU コンピューティング最適化インスタンスファミリー。 このインスタンスファミリーには、ecs.gn5-c4g1.xlarge など、さまざまなインスタンスタイプが含まれています。

    gn5 インスタンスファミリーには、ローカルディスクが搭載されています。 ローカルディスクをエラスティックコンテナインスタンスにマウントできます。 詳細については、「エラスティックコンテナインスタンスを作成するためのECSインスタンスタイプの指定」をご参照ください。

説明
  • GPU アクセラレーション エラスティックコンテナインスタンスでサポートされている GPU ドライバーのバージョンは NVIDIA 460.73.01 です。 GPU アクセラレーション エラスティックコンテナインスタンスでサポートされている CUDA Toolkit のバージョンは 11.2 です。

  • GPU アクセラレーション ECS インスタンスファミリーの詳細については、「リージョンごとに利用可能な ECS インスタンスタイプ」および「インスタンスファミリーの概要」をご参照ください。

GPU 共有を有効にする

  1. を参照して、ノードの GPU 共有機能を有効にします。

  2. Knative サービスで aliyun.com/gpu-mem フィールドを設定して、GPU メモリサイズを指定できます。 例:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
      namespace: default
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: "100"
            autoscaling.knative.dev/minScale: "0"
        spec:
          containerConcurrency: 1
          containers:
          - image: registry-vpc.cn-hangzhou.aliyuncs.com/hz-suoxing-test/test:helloworld-go
            name: user-container
            ports:
            - containerPort: 6666
              name: http1
              protocol: TCP
            resources:
              limits:
                aliyun.com/gpu-mem: "3" # GPU メモリサイズを指定します。

関連情報