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

Elastic Container Instance:ECS インスタンスファミリーの指定または除外

最終更新日:Jun 22, 2026

vCPU とメモリを指定して Elastic Container Instance (ECI) Pod を作成する際、特定の基盤となるインスタンスが必要な場合 (例:ecs.g6 インスタンスファミリーのみを使用する場合) は、k8s.aliyun.com/eci-instance-family アノテーションを追加できます。本トピックでは、ECI Pod を作成する際に Elastic Compute Service (ECS) インスタンスファミリーを指定または除外する方法について説明します。

仕組み

vCPU とメモリを指定して ECI Pod を作成する場合、システムはさまざまな ECS インスタンスタイプを使用する可能性があります。システムは、vCPU とメモリの要件を満たし、かつ在庫があるインスタンスタイプを自動的に選択します。k8s.aliyun.com/eci-instance-family アノテーションを追加することで、ECS インスタンスファミリーを指定または除外して選択範囲を絞り込めます。

  • 1 つまたは複数の ECS インスタンスファミリーを指定した場合、システムはそれらのファミリーからのみインスタンスタイプを選択します。指定したファミリーに一致する利用可能なインスタンスタイプがない場合、Pod の作成は失敗します。

  • 1 つまたは複数の ECS インスタンスファミリーを除外した場合、システムはサポートされている他の ECS インスタンスファミリーからインスタンスタイプを選択します。

説明

より詳細に制御するには、このアノテーションを k8s.aliyun.com/eci-instance-generation と組み合わせて、ECS インスタンス世代を指定または除外できます。

指定または除外できる ECS インスタンスファミリーを次の表に示します。

アーキテクチャ

ECS インスタンスファミリーの世代

ECS インスタンスファミリー

Arm

8

g8y、c8y、r8y

x86

8

g8i、c8i、r8i、hfg8i、hfc8i、hfr8i

7

g7、c7、r7、hfg7、hfc7、hfr7、g7ne

6

g6e、g6、c6e、c6、r6e、r6、hfc6、hfg6

5

u1、g5、g5ne、c5、r5、ic5、hfc5、hfg5

4

sn2ne、sn1ne、se1ne、se1

ECS インスタンスタイプの詳細については、次のトピックをご参照ください:

使用上の注意

  • ECS インスタンスファミリーを指定または除外して作成された ECI Pod は、リクエストした vCPU とメモリではなく、プロビジョニングされた ECS インスタンスタイプに基づいて課金されます。

    重要

    ECI Pod の作成後、kubectl describe pod コマンドを実行して詳細を確認できます。k8s.aliyun.com/eci-instance-spec フィールドで、課金に使用される実際の ECS インスタンスタイプを確認してください。

  • ECS インスタンスファミリーを指定または除外する場合、システムは GPU インスタンスタイプ (例:gn6i) やローカルディスク付きのインスタンスタイプ (例:i2g) などの特定の専用インスタンスタイプを自動的に選択できません。これらのインスタンスタイプを使用するには、直接指定する必要があります。詳細については、「ECS インスタンスタイプを指定して Pod を作成する」をご参照ください。

  • この機能は、vCPU とメモリの要件を指定する場合にのみ適用されます。正確な ECS インスタンスタイプを指定する場合、このアノテーションは無視されます。

  • この機能を使用してプリエンプティブルインスタンスを作成できます。この場合、システムは設定内のインスタンスファミリーの順序と市場価格の両方を考慮し、価格を優先します。特定のインスタンスファミリーに厳密な要件がある場合は、1 つのみを設定することを推奨します。

設定

次のルールに従って、k8s.aliyun.com/eci-instance-family アノテーションの値を 1 つまたは複数の ECS インスタンスファミリーに設定します。

  • ECI でサポートされている ECS インスタンスファミリーのカンマ区切りリストを指定できます。

    重要

    現在、第 8 世代のインスタンスタイプは Arm アーキテクチャでのみ利用可能です。Pod を作成する際は、nodeSelector を使用して Pod を Arm ベースのノードにスケジュールする必要があります。したがって、同じアノテーション値内で Arm ベースと x86 ベースのインスタンスファミリーを混在させることはできません。Arm ノードをターゲットにする場合は、他の Arm ベースのファミリーのみを指定または除外できます。設定例については、「例 5:Arm ベースのインスタンスファミリーを指定する」をご参照ください。

  • インスタンスファミリーの前にハイフン (-) を付けて除外します。

    例: k8s.aliyun.com/eci-instance-family: "-ecs.c6, -ecs.c5" は、ecs.c6 と ecs.c5 インスタンスファミリーを除外します。

  • 複数のインスタンスファミリーを指定した場合、システムは指定した順序で試行します。

    例: k8s.aliyun.com/eci-instance-family: "ecs.c6, ecs.c5" は、システムがまず ecs.c6 ファミリーからインスタンスタイプを選択しようとすることを意味します。在庫がある適切なインスタンスタイプが見つからない場合、ecs.c5 ファミリーにフォールバックします。ecs.c5 ファミリーにも適切なインスタンスタイプがない場合、Pod の作成は失敗します。

k8s.aliyun.com/eci-instance-family アノテーションを使用する場合、まず vCPU とメモリを指定する必要があります。これには、次のいずれかの方法があります。

  • コンテナの requests または limits を定義します。limits の使用を推奨します。

  • Pod メタデータに k8s.aliyun.com/eci-use-specs アノテーションを追加します。

例 1:ECS インスタンスファミリーを指定する

パラメータ

結果

  • limits フィールドを使用して、2 vCPU と 4 GiB のメモリを指定します。

  • アノテーション k8s.aliyun.com/eci-instance-family: "ecs.c6, ecs.g6" は、ecs.c6 ファミリーを優先し、ecs.g6 ファミリーをフォールバックとして使用します。

システムはまず ecs.c6.large インスタンスタイプの使用を試み、ecs.g6.large にフォールバックします。

説明

この設定は、k8s.aliyun.com/eci-use-specs: "ecs.c6.large,ecs.g6.large" を設定した場合と同じ効果があります。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      name: test
      labels:
        app: test
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-instance-family: "ecs.c6,ecs.g6"    # ecs.c6 ファミリーを優先し、次に ecs.g6 ファミリーにフォールバックします。
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: "2"       # vCPU 上限        
            memory: "4Gi"  # メモリ上限

例 2:ECS インスタンスファミリーを除外する

パラメータ

結果

  • アノテーション k8s.aliyun.com/eci-use-specs: "2-4Gi" は、vCPU とメモリリソース (2 vCPU、4 GiB のメモリ) を指定します。

  • アノテーション k8s.aliyun.com/eci-instance-family: "-ecs.hfg6,-ecs.hfg5" は、ecs.hfg6 と ecs.hfg5 インスタンスファミリーを除外します。

システムは、ecs.hfg6 と ecs.hfg5 を除く、サポートされている任意の ECS インスタンスファミリーから一致するインスタンスタイプを選択します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "2-4Gi"                    # vCPU とメモリの範囲を指定します。
        k8s.aliyun.com/eci-instance-family: "-ecs.hfg6,-ecs.hfg5"    # ecs.hfg6 と ecs.hfg5 インスタンスファミリーを除外します。
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

例 3: 特定の世代の ECS インスタンスファミリーを指定し、特定の ECS インスタンスファミリーを除外

パラメーター

効果

  • k8s.aliyun.com/eci-use-specs: "2-4Gi" アノテーションが vCPU とメモリリソース (2 vCPU、4 GiB メモリ) を定義するように設定されています。

  • k8s.aliyun.com/eci-instance-generation: "6,5" アノテーションが設定されています。このアノテーションは、システムが第 6 世代の ECS インスタンスファミリー、次に第 5 世代の ECS インスタンスファミリーを使用することを指定します。

  • k8s.aliyun.com/eci-instance-family: "-ecs.hfg5" アノテーションが ecs.hfg5 インスタンスファミリーを除外するように設定されています。

  • システムは、vCPU とメモリの仕様要件を満たす第 6 世代の ECS インスタンスファミリーからインスタンスタイプを優先的に選択します。

  • 第 6 世代の ECS インスタンスファミリーのリソースが不足している場合、システムは ECI がサポートする第 5 世代の ECS インスタンスファミリー (ecs.hfg5 を除く) からインスタンスタイプを選択します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "2-4Gi"                   # vCPU とメモリの仕様を指定します。
        k8s.aliyun.com/eci-instance-generation: "6,5"           # 第 6 世代と第 5 世代の ECS インスタンスファミリーを順に使用するように指定します。
        k8s.aliyun.com/eci-instance-family: "-ecs.hfg5"           # ecs.hfg5 インスタンスファミリーを除外します。
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

例 4: 特定の世代の ECS インスタンスファミリーと特定の ECS インスタンスファミリーを除外

パラメーター

効果

  • k8s.aliyun.com/eci-use-specs: "2-4Gi" アノテーションが vCPU とメモリリソース (2 vCPU、4 GiB メモリ) を定義するように設定されています。

  • k8s.aliyun.com/eci-instance-generation: "-5,-4" アノテーションが第 5 世代と第 4 世代の ECS インスタンスファミリーを除外するように設定されています。

  • k8s.aliyun.com/eci-instance-family: "-ecs.hfg6" アノテーションが ecs.hfg6 インスタンスファミリーを除外するように設定されています。

システムは、vCPU とメモリの仕様要件を満たす第 7 世代と第 6 世代の ECS インスタンスファミリー (ecs.hfg6 を除く) からインスタンスタイプを選択します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "2-4Gi"                    # あいまい検索モードで vCPU とメモリの仕様を指定します。
        k8s.aliyun.com/eci-instance-generation: "-5,-4"          # 第 5 世代と第 4 世代の ECS インスタンスファミリーを除外します。
        k8s.aliyun.com/eci-instance-family: "-ecs.hfg6"            # ecs.hfg6 インスタンスファミリーを除外します。
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

例 5:Arm ベースのインスタンスファミリーを指定する

パラメータ

結果

  • アノテーション k8s.aliyun.com/eci-use-specs: "2-4Gi,4-8Gi" は、vCPU とメモリリソースを指定します。最初に 2 vCPU と 4 GiB のメモリが使用され、次に 4 vCPU と 8 GiB のメモリが使用されます。

  • アノテーション k8s.aliyun.com/eci-instance-family: "ecs.c8y" は、ecs.c8y ファミリーのインスタンスタイプを使用することを指定します。

  • ラベル alibabacloud.com/eci: "true"kubernetes.io/arch: arm64 は、Pod を Arm ベースの仮想ノードにスケジュールします。

最初に ecs.c8y.large インスタンスタイプが使用され、次に ecs.c8y.xlarge インスタンスタイプが使用されます。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "2-4Gi,4-8Gi"              # 複数の vCPU とメモリの範囲を指定します。
        k8s.aliyun.com/eci-instance-family: "ecs.c8y"            # ecs.c8y インスタンスファミリーを指定します。
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
      nodeSelector:
        kubernetes.io/arch: arm64  # Pod を Arm ノードにスケジュールします。

例 6:無効な設定

サポートされていないシナリオでこの機能を使用すると、システムはアノテーションを無視し、IgnoreInstanceTypeFeatures イベントを生成します。

イベント名

タイプ

メッセージ

説明

IgnoreInstanceTypeFeatures

Warning

[eci.containergroup] The instance type features will be ignored as the provided specifications, [%s],correspond exclusively to ECS instance types.

k8s.aliyun.com/eci-use-specs が正確な ECS インスタンスタイプを指定しているため、システムは ECS インスタンスファミリーを指定するアノテーションを無視します。

次の例では、システムは ecs.c6 インスタンスファミリーを指定するアノテーションを無視します。システムは、ecs.c5.large インスタンスタイプのみを使用して ECI Pod を作成します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "ecs.c5.large"   # 正確な ECS インスタンスタイプを指定します。
        k8s.aliyun.com/eci-instance-family: "ecs.c6"   # このアノテーションは無視されます。
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

Pod イベントで IgnoreInstanceTypeFeatures イベントを確認できます。