ECS インスタンスタイプを個別に列挙する代わりに、vCPU およびメモリの要件を指定すると、Elastic Container Instance (ECI) が基盤となるアーキテクチャを自動的に選択します。コンピューティングカテゴリ機能により、この選択においてコスト優先またはパフォーマンス優先のプリファレンスを明示できます。
利用可能なカテゴリは以下の 2 つです:
エコノミー型 — 汎用型より低い vCPU 単価で、0.25~8 vCPU をサポート。軽量ワークロード、バッチ処理、またはコストに敏感なワークロードに最適です。
汎用型 — コンピューティングカテゴリを指定せずに作成したインスタンスと同額の単価で、1~64 vCPU をサポート。同一の vCPU・メモリ仕様において、より高いパフォーマンスを実現します。
両カテゴリともパブリックプレビュー中です。
両カテゴリのデフォルト一時ストレージ容量は 30 GiB です。
コンピューティングカテゴリの選択
| 目的 | カテゴリ |
|---|---|
| シンプルまたは非重要ワークロードにおけるコスト削減 | economy |
| 本番ワークロードにおけるパフォーマンス最大化 | general |
| 可用性の向上(軽微なパフォーマンス変動を許容) | 両方を指定: general,economy |
複数のカテゴリを指定した場合、システムは組み合わせを順次試行します(指定された優先順位を先に適用し、その後カテゴリを評価)。これにより、general のリソースが利用不可の場合に、economy へフォールバック可能となり、軽微なパフォーマンス低下を許容することで Pod の継続実行を確保します。
仕様
経済
ECI が利用可能なすべてのリージョンでサポート
| vCPU | メモリ (GiB) | ベースライン帯域幅(双方向、Gbit/s) |
|---|---|---|
| 0.25 | 0.5、1 | 0.08 |
| 0.5 | 1、2 | 0.08 |
| 1 | 2、4、8 | 0.08 |
| 2 | 1、2、4、8、16 | 0.2 |
| 4 | 2、4、8、16、32 | 0.4 |
| 8 | 4、8、16、32、64 | 0.8 |
一部のリージョンでのみサポート
以下の仕様は、中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深セン)、中国 (河源)、中国 (広州)、中国 (成都)、およびシンガポールでのみ利用可能です。
これらの仕様では、プリエンプティブルインスタンスを作成できません。
| vCPU | メモリ (GiB) | ベースライン帯域幅(双方向、Gbit/s) |
|---|---|---|
| 2 | 6、10、12、14 | 0.2 |
| 4 | 6、10、12、14、18、20、22、24、26、28、30 | 0.4 |
| 6 | 6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48 | 0.8 |
| 8 | 10、12、14、18、20、22、24、26、28、30、34、36、38、40、42、44、46、48、50、52、54、56、58、60、62 | 0.8 |
一般
ECI が利用可能なすべてのリージョンでサポート
| vCPU | メモリ (GiB) | ベースライン帯域幅(双方向、Gbit/s) |
|---|---|---|
| 1 | 2、4、8 | 1 |
| 2 | 1、2、4、8、16 | 1 |
| 4 | 2、4、8、16、32 | 1.5 |
| 8 | 4、8、16、32、64 | 2 |
| 12 | 12、24、48、96 | 2.5 |
| 16 | 16、32、64、128 | 3 |
| 24 | 24、48、96、192 | 4.5 |
| 32 | 32、64、128、256 | 6 |
| 52 | 96、192、384 | 12.5 |
| 64 | 128、256、512 | 20 |
一部のリージョンでのみサポート
以下の仕様は、中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深セン)、中国 (河源)、中国 (広州)、中国 (成都)、およびシンガポールでのみ利用可能です。
これらの仕様では、プリエンプティブルインスタンスを作成できません。
| vCPU | メモリ (GiB) | ベースライン帯域幅(双方向、Gbit/s) |
|---|---|---|
| 2 | 6、10、12、14 | 1 |
| 4 | 6、10、12、14、18、20、22、24、26、28、30 | 1.5 |
| 6 | 6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48 | 1.5 |
| 8 | 10、12、14、18、20、22、24、26、28、30、34、36、38、40、42、44、46、48、50、52、54、56、58、60、62 | 2.5 |
課金
両カテゴリともパブリックプレビュー中です。
エコノミー型は、汎用型と比較してvCPU の単位価格が低く、メモリの単価は両カテゴリで同一です。
| カテゴリ | リソース | 単位価格 |
|---|---|---|
| エコノミー型 | vCPU | USD 0.00000424/vCPU・秒(USD 0.015264/vCPU・時間) |
| エコノミー型 | メモリ | USD 0.00000096/GiB・秒(USD 0.003456/GiB・時間) |
| 汎用型 | vCPU | USD 0.0000077/vCPU・秒(USD 0.02772/vCPU・時間) |
| 一般 | メモリ | USD 0.00000096/GiB・秒(USD 0.003456/GiB・時間) |
Pod 作成後、kubectl describe pod を実行して、実際に使用されたコンピューティングカテゴリを確認してください。k8s.aliyun.com/eci-instance-compute-category の応答アノテーションに結果が表示されます。課金は、このアノテーションで示されたカテゴリの単位価格に基づいて行われます。
制限事項
vCPU/メモリ仕様の指定が必要:この機能は、vCPU およびメモリを指定して弾性コンテナインスタンスを作成する場合にのみ有効です。ECS インスタンスタイプを指定した場合は、そちらが優先され、コンピューティングカテゴリは無視されます。
プリエンプティブル Pod はサポートされません:プリエンプティブルアノテーションとコンピューティングカテゴリアノテーションの両方を設定すると、エラー
FeatureBasedConstraintConflictが返されます。Arm ベースの Pod はサポートされません:エコノミー型コンピューティングカテゴリアノテーションを付与した Arm ベースの仮想ノード上への Pod スケジューリングは、エラー
FeatureBasedConstraintConflictを返します。互換性のない機能:以下の機能とは併用できません。
ECS インスタンスファミリーの指定または除外
ECS インスタンスファミリーの特定世代の指定または除外
コンピューティングカテゴリの構成
ステップ 1:vCPU およびメモリの指定
コンピューティングカテゴリを設定する前に、以下のいずれかの方法で Pod の vCPU およびメモリを指定します。
| 方法 | 手順 | 補足 |
|---|---|---|
| コンテナごとの制限(推奨) | 各コンテナに対して resources.limits.cpu および resources.limits.memory を設定 | ECI は limits を使用してインスタンス仕様を決定します。limits を使用することで、選択されるインスタンスサイズを明示的に制御できます。 |
| Pod レベルのアノテーション | Pod のメタデータに k8s.aliyun.com/eci-use-specs を追加 | Pod 全体の合計 vCPU およびメモリを直接指定し、コンテナごとの集約をバイパスします。 |
limits、requests、およびk8s.aliyun.com/eci-use-specsのいずれも設定されていない場合、またはすべて同時に設定されている場合の仕様解決方法については、「構成の説明」をご参照ください。
ステップ 2:コンピューティングカテゴリの設定
Pod のメタデータセクションに k8s.aliyun.com/eci-compute-category アノテーションを追加します。
有効な値:
economy、generalフォールバック順序を指定するには、カンマ区切りのリストを使用:
general,economy
アノテーションは、Pod の
metadataセクションに追加してください。デプロイメントの場合は、spec.template.metadataです。アノテーションは、Pod 作成時にのみ有効です。既存の Pod に対してアノテーションを追加または変更しても、効果はありません。
仕様選択の仕組み
vCPU/メモリ仕様およびコンピューティングカテゴリの両方が構成されている場合、ECI は以下のルールに基づいて最終的なインスタンスを決定します。
| 構成 | 結果 |
|---|---|
| コンピューティングカテゴリのみ指定、vCPU/メモリ未指定 | 指定されたカテゴリを使用し、2 vCPU/4 GiB のインスタンスを作成 |
| vCPU/メモリおよびコンピューティングカテゴリを指定、その組み合わせが有効な ECI 仕様である場合 | 指定通りのインスタンスを作成 |
general カテゴリで vCPU < 1 を指定した場合 | システムが vCPU を 1(汎用型の最小値)に自動調整 |
economy カテゴリで vCPU > 8 を指定した場合 | 無効 — システムによる自動調整は不可能であり、エラーが返されます |
| vCPU/メモリがカテゴリの範囲内だが、正確な ECI 仕様と一致しない場合 | システムが、要求値以上で最も近いサポート対象仕様に四捨五入します。例:7 vCPU/13 GiB + general は、8 vCPU/16 GiB |
| 複数の仕様またはカテゴリを指定した場合 | インスタンス仕様がカテゴリよりも優先されます。システムは、指定された順序で組み合わせを試行します。 |
複数の仕様およびカテゴリ
両方の値を複数指定した場合、システムはまず仕様、次にカテゴリの順で全組み合わせを反復処理します。無効な組み合わせ(例:16 vCPU + economy)は自動的にスキップされます。
例: k8s.aliyun.com/eci-use-specs: "4-8Gi,8-16Gi,16-32Gi" および k8s.aliyun.com/eci-compute-category: "general,economy"
システムは以下の順序で試行します:
4 vCPU/8 GiB、汎用型
4 vCPU/8 GiB、エコノミー型
8 vCPU/16 GiB、汎用型
8 vCPU/16 GiB、エコノミー型
16 vCPU/32 GiB、汎用型
16 vCPU/32 GiB、エコノミー型(無効 — 自動スキップ)
要求された仕様がサポート対象の ECI 仕様と完全に一致しない場合、システムは指定されたすべてのカテゴリを考慮し、最も近い有効な仕様に四捨五入します。その四捨五入後の仕様が特定のカテゴリと互換性を持たない場合、当該カテゴリはその仕様に対する選択から除外されます。例:0.5 vCPU/1.9 GiB + general,economy の場合、システムは 0.5 vCPU/2 GiB に四捨五入します。0.5 vCPU は general ではサポートされていないため、この仕様に対しては economy のみが使用されます。
構成例
例 1:コンテナごとの制限を用いたエコノミー型カテゴリ
各コンテナで limits を使用し、コンピューティングカテゴリを economy に設定します。Pod の合計 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-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" # 0.5 vCPU
memory: "1024Mi" # 1 GiB
- name: busybox
image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
command: ["sleep"]
args: ["999999"]
resources:
limits:
cpu: "1000m" # 1 vCPU
memory: "2048Mi" # 2 GiB例 2: 汎用からエコノミー型へのフォールバック
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-use-specs: "2-4Gi,4-8Gi" # まず 2 vCPU/4 GiB を試行し、次に 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例 3:複数の仕様とエコノミー型カテゴリ
k8s.aliyun.com/eci-use-specs を使用して、フォールバック順序付きの複数の Pod レベル仕様を指定し、単一のコンピューティングカテゴリと組み合わせます。
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 を試行、次に 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