ほとんどのシナリオでは、GPU アクセラレーション ECS インスタンスタイプやローカルディスクを搭載した ECS インスタンスタイプなどの特別な Elastic Compute Service (ECS) インスタンスタイプを必要としない場合は、vCPU とメモリの仕様を指定して Elastic Container Instance ベースの Pod (Elastic Container Instance) を作成することをお勧めします。この場合、さらにコンピューティングカテゴリを指定できます。たとえば、単純なアプリケーションシナリオで 0.25 ~ 8 vCPU の Pod を使用する場合、コンピューティングカテゴリをエコノミーに設定してコストを削減できます。インスタンスに 1 つ以上の vCPU を搭載する場合、コンピューティングカテゴリを汎用に設定して高パフォーマンスを実現できます。
コンピューティングカテゴリ機能の説明
低コストまたは安定したパフォーマンスに対する要件をより適切に満たすために、Elastic Container Instance はコンピューティングカテゴリ機能を提供します。 vCPU とメモリの仕様を指定して Elastic Container Instance を作成すると、Elastic Container Instance はエコノミーと汎用コンピューティングカテゴリに基づいて基盤となるアーキテクチャを選択します。要件に基づいてコンピューティングカテゴリを設定できます。システムは、vCPU とメモリの仕様に一致する基盤となるアーキテクチャを自動的に選択します。
エコノミーコンピューティングカテゴリ
エコノミーコンピューティングカテゴリは、0.25 ~ 8 vCPU のインスタンスをサポートしています。エコノミーコンピューティングカテゴリのインスタンスの単価は、汎用コンピューティングカテゴリのインスタンスの単価よりも低くなっています。
汎用コンピューティングカテゴリ
汎用コンピューティングカテゴリは、1 ~ 64 vCPU のインスタンスをサポートしています。汎用コンピューティングカテゴリのインスタンスの仕様単価は、コンピューティングカテゴリ機能を有効にせずに作成されたインスタンスの仕様単価と同じです。汎用コンピューティングカテゴリのインスタンスは、コンピューティングカテゴリ機能を有効にせずに作成された同じ vCPU とメモリの仕様を持つインスタンスよりも高いパフォーマンスを提供します。
コンピューティングカテゴリの選択方法
低コスト、安定したパフォーマンス、または高可用性に対する特定のニーズに基づいて、コンピューティングカテゴリを選択できます。次のルールに基づいてコンピューティングカテゴリを選択することをお勧めします。
単純なアプリケーションで Elastic Container Instance を使用する場合、エコノミーコンピューティングカテゴリを選択してリソースコストを削減できます。
Elastic Container Instance で高パフォーマンスを実現する場合、汎用コンピューティングカテゴリを選択できます。
ビジネスで一定のパフォーマンス変動を許容できる場合は、複数のコンピューティングカテゴリを指定して、リソース不足によるインスタンス作成の失敗を防ぎ、高可用性を確保できます。
コンピューティングカテゴリの説明
このセクションでは、Elastic Container Instance でサポートされているエコノミーと汎用コンピューティングカテゴリについて説明します。
デフォルトでは、エコノミーおよび汎用コンピューティングカテゴリのインスタンスの一時ストレージ容量は 30 GiB です。
エコノミーコンピューティングカテゴリ
汎用コンピューティングカテゴリ
請求ルール
エコノミーおよび汎用コンピューティングカテゴリはパブリックプレビュー中です。
エコノミーコンピューティングカテゴリ
コンピューティングカテゴリ機能を有効にせずに作成されたインスタンスと比較して、エコノミーコンピューティングカテゴリのインスタンスは、同じメモリ単価とより低い vCPU 単価が適用されます。
vCPU の単価:vCPU 秒あたり 0.00000424 米ドル (vCPU 時間あたり 0.015264 米ドル)
メモリの単価:GiB 秒あたり 0.00000096 米ドル (GiB 時間あたり 0.003456 米ドル)
汎用コンピューティングカテゴリ
汎用コンピューティングカテゴリのインスタンスの仕様単価は、コンピューティングカテゴリ機能を有効にせずに作成された Elastic Container Instance の仕様単価と同じです。
vCPU の単価 (1 vCPU):秒あたり 0.0000077 米ドル (時間あたり 0.02772 米ドル)
メモリの単価 (1 GiB):秒あたり 0.00000096 米ドル (時間あたり 0.003456 米ドル)
Pod が作成された後、kubectl describe pod コマンドを実行して Pod の詳細を表示できます。k8s.aliyun.com/eci-instance-compute-category レスポンスアノテーションで、Pod の実際に使用されているコンピューティングカテゴリを確認できます。対応するコンピューティングカテゴリの仕様単価に基づいて課金されます。
制限事項
Pod を作成するときにコンピューティングカテゴリを指定する場合、次の制限が適用されます。
この機能は、vCPU とメモリの仕様を指定して Elastic Container Instance を作成する場合にのみ有効です。
Elastic Container Instance を作成するときに ECS インスタンスタイプを指定すると、ECS インスタンスタイプが優先されます。この場合、コンピューティングカテゴリを指定することはできません。
この機能は、プリエンティブル Pod を作成するときはサポートされません。
アノテーションを設定して Pod カテゴリをプリエンティブルに、コンピューティングカテゴリをエコノミーに設定すると、システムはエラーを報告します。エラーコードは FeatureBasedConstraintConflict です。
この機能は、Arm ベースの Pod を作成するときはサポートされません。
アノテーションで Pod を Arm ベースの仮想ノードで実行するようにスケジュールし、コンピューティングカテゴリをエコノミーに設定すると、システムはエラーを報告します。エラーコードは FeatureBasedConstraintConflict です。
この機能は、次の機能と組み合わせて使用することはできません。
ECS インスタンスファミリの指定または除外
特定世代の ECS インスタンスファミリの指定または除外
構成の説明
Pod を作成するときに、次のいずれかの方法を使用して vCPU とメモリの仕様を指定できます。
limits または requests パラメーターを使用して、Pod 内の各コンテナーの vCPU 数とメモリサイズを指定します。 limits パラメーターを使用することをお勧めします。
Pod のメタデータセクションにアノテーション
k8s.aliyun.com/eci-use-specsを追加して、Pod の vCPU 数とメモリサイズを指定します。
limits、requests、または k8s.aliyun.com/eci-use-specs を指定しない場合、またはすべてを指定した場合、システムはシナリオに基づいて Pod を作成します。詳細については、構成の説明 を参照してください。
vCPU とメモリの仕様を指定して Pod を作成する場合、さらに k8s.aliyun.com/eci-compute-category アノテーションを使用して Pod のコンピューティングカテゴリを指定できます。
有効な値:
economyおよびgeneral。複数のコンピューティングカテゴリを指定できます。システムは、コンピューティングカテゴリの指定された順序に基づいて Pod のカテゴリを選択します。
アノテーションは、Pod の構成ファイルのメタデータに追加する必要があります。たとえば、Deployment を作成するときは、spec.template.metadata セクションにアノテーションを追加する必要があります。
Elastic Container Instance の機能を使用するには、Elastic Container Instance ベースの Pod を作成するときにのみアノテーションを追加できます。Pod を更新するときにアノテーションを追加または変更しても、これらのアノテーションは有効になりません。
有効なルール
コンピューティングカテゴリ機能を有効にした後、Pod の実際に使用される仕様とコンピューティングカテゴリは、次のルールに基づいて決定されます。
Pod が作成された後、kubectl describe pod コマンドを実行して Pod の詳細を表示できます。k8s.aliyun.com/eci-instance-compute-category レスポンスアノテーションで、Pod の実際に使用されているコンピューティングカテゴリを確認できます。対応するコンピューティングカテゴリの仕様単価に基づいて課金されます。
インスタンス作成時のインスタンスの構成方法 | 実際に作成されたインスタンス |
vCPU とメモリの仕様は指定されていませんが、コンピューティングカテゴリは指定されています。 | 2 vCPU と 4 GiB のメモリを持つインスタンスが作成されます。インスタンスは、指定されたコンピューティングカテゴリを使用します。 |
vCPU とメモリの仕様とコンピューティングカテゴリが指定されており、条件の組み合わせが Elastic Container Instance の仕様要件を満たしています。 | 指定された条件に基づいてインスタンスが作成されます。 |
指定された vCPU 数は 1 未満ですが、指定されたコンピューティングカテゴリは汎用です。 | 条件が Elastic Container Instance の仕様要件を満たしていません。システムは vCPU 数を自動的に 1 に調整して、汎用コンピューティングカテゴリの要件を満たします。 |
指定された vCPU 数は 8 を超えていますが、指定されたコンピューティングカテゴリはエコノミーです。 | 条件が Elastic Container Instance の仕様要件を満たしていません。システムは仕様を自動的に調整できません。エラーが報告されます。 |
vCPU とメモリの仕様とコンピューティングカテゴリが指定されています。指定された vCPU 数は、コンピューティングカテゴリの vCPU 仕様範囲内ですが、Elastic Container Instance の仕様要件を満たしていません。 | システムは、Elastic Container Instance でサポートされている仕様に基づいてインスタンスの仕様を自動的に調整します。システムがインスタンスの仕様を調整するとき、システムは Elastic Container Instance でサポートされている最も類似した仕様を選択し、選択された vCPU とメモリの仕様は、指定された vCPU とメモリの仕様以上になります。 たとえば、vCPU とメモリの仕様を |
複数の vCPU とメモリの仕様または複数のコンピューティングカテゴリが指定されています。 | システムは、次のルールに基づいてインスタンスの仕様を選択します。
たとえば、vCPU とメモリの仕様を
重要 インスタンスの仕様はコンピューティングカテゴリよりも優先されるため、複数のコンピューティングカテゴリが指定されており、指定された vCPU とメモリの仕様が Elastic Container Instance の仕様要件を満たしていない場合、システムはすべてのコンピューティングカテゴリを考慮し、インスタンスの仕様を最も類似したインスタンスの仕様にスケールアップします。目的の vCPU とメモリの仕様が特定のコンピューティングカテゴリと互換性がない場合、このコンピューティングカテゴリは現在の vCPU とメモリの仕様のスケジューリングでは考慮されません。 たとえば、vCPU とメモリの仕様を |
構成例
例 1:各コンテナーの limits パラメーターを指定し、コンピューティングカテゴリをエコノミーに設定する
apiVersion: apps/v1 kind: Deployment metadata: name: test labels: app: test spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: name: test labels: app: nginx alibabacloud.com/eci: "true" annotations: k8s.aliyun.com/eci-compute-category: "economy" # コンピューティングカテゴリをエコノミーに設定します。 spec: containers: - name: nginx image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 ports: - containerPort: 80 resources: limits: cpu: "500m" # nginx という名前のコンテナーに 0.5 vCPU を指定します。 memory: "1024Mi" # nginx という名前のコンテナーに 1 GiB のメモリを指定します。 - name: busybox image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30 command: ["sleep"] args: ["999999"] resources: limits: cpu: "1000m" # busybox という名前のコンテナーに 1 vCPU を指定します。 memory: "2048Mi" # busybox という名前のコンテナーに 2 GiB のメモリを指定します。例 2:各コンテナーの limits パラメーターを指定し、コンピューティングカテゴリを general,economy に設定する。
apiVersion: apps/v1 kind: Deployment metadata: name: test labels: app: test spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: name: test labels: app: nginx alibabacloud.com/eci: "true" annotations: k8s.aliyun.com/eci-compute-category: "general,economy" # コンピューティングカテゴリを general,economy に設定します。システムは、汎用コンピューティングカテゴリの Pod を優先的に作成します。作成に失敗した場合、システムはエコノミーコンピューティングカテゴリの Pod を作成します。 spec: containers: - name: nginx image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 ports: - containerPort: 80 resources: limits: cpu: "2000m" # nginx という名前のコンテナーに 2 vCPU を指定します。 memory: "4096Mi" # nginx という名前のコンテナーに 4 GiB のメモリを指定します。 - name: busybox image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30 command: ["sleep"] args: ["999999"] resources: limits: cpu: "2000m" # busybox という名前のコンテナーに 2 vCPU を指定します。 memory: "4096Mi" # busybox という名前のコンテナーに 4 GiB のメモリを指定します。例 3:
k8s.aliyun.com/eci-use-specsアノテーションを使用して複数の vCPU とメモリの仕様を指定し、コンピューティングカテゴリを汎用に設定するapiVersion: apps/v1 kind: Deployment metadata: name: test labels: app: test spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: name: test labels: app: nginx alibabacloud.com/eci: "true" annotations: k8s.aliyun.com/eci-use-specs : "2-4Gi,4-8Gi" # システムが最初に 2 vCPU と 4 GiB のメモリの仕様を使用して Pod を作成するように指定します。作成に失敗した場合、システムは 4 vCPU と 8 GiB のメモリの仕様を使用します。 k8s.aliyun.com/eci-compute-category: "economy" # コンピューティングカテゴリをエコノミーに設定します。 spec: containers: - name: nginx image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 ports: - containerPort: 80