現代のクラウドコンピューティングとコンテナー化された環境において、Pod は Kubernetes におけるデプロイ可能な最小単位であり、通常は 1 つ以上のコンテナーで構成されます。Pod のコンピューティングクラスとコンピューティング品質は、アプリケーションのパフォーマンスとリソース使用率に大きく影響します。Container Compute Service (ACS) は、多様なビジネス要件を満たすために、複数のコンピューティングクラスとそれに対応するコンピューティング品質レベルを提供します。このトピックでは、ACS Pod の前提条件、制限事項、およびコア機能について説明します。これらの機能には、セキュリティ隔離、CPU、メモリ、GPU リソースの構成、イメージのプル、ストレージ、ネットワーク、ログ収集が含まれます。
コンピューティングクラス
ACS は、コスト効率の高い CPU および GPU コンテナーコンピューティングクラスを提供します。さまざまなコンピューティングクラスは、さまざまなビジネスシナリオに合わせてリソース割り当てが異なります。
コンピューティングタイプ | ラベル | 特徴 |
汎用 (デフォルト) | general-purpose | ほとんどのステートレスマイクロサービスアプリケーション、Java Web アプリケーション、およびコンピューティング集約型タスクに適しています。 |
パフォーマンス強化 | performance | CPU ベースの AI/ML トレーニングや推論、HPC バッチ処理などのハイパフォーマンスシナリオに適しています。 |
GPU アクセラレーション | gpu | 単一 GPU または複数 GPU の推論、GPU 並列計算など、AI や HPC などのヘテロジニアスコンピューティングシナリオに適しています。 |
GPU-HPN | gpu-hpn | GPU 分散トレーニング、分散推論、GPU アクセラレーションによるハイパフォーマンスコンピューティングなど、AI や HPC などのヘテロジニアスコンピューティングシナリオに適しています。 |
Pod に alibabacloud.com/compute-class ラベルを追加することで、Pod のコンピューティングクラスを指定できます。以下の例は、コンピューティングクラスを general-purpose、gpu、gpu-hpn に設定した Nginx アプリケーションの Deployment を示しています。
汎用
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latestGPU アクセラレーション
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
# compute-class を gpu に設定します。
alibabacloud.com/compute-class: "gpu"
# GPU モデルを example-model に設定します。T4 など、実際の GPU モデルに置き換えてください。
alibabacloud.com/gpu-model-series: "example-model"
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
resources:
limits:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # GPU の数を指定します。実際のリソースラベルと数量に基づいて設定してください。
requests:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # GPU の数を指定します。実際のリソースラベルと数量に基づいて設定してください。ACS がサポートする GPU モデルと仕様の詳細については、「アクセラレーションコンピューティングインスタンスタイプ」をご参照ください。
ハイパフォーマンスネットワーク GPU タイプ
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
# compute-class を gpu-hpn に設定します。
alibabacloud.com/compute-class: "gpu-hpn"
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
resources:
limits:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # GPU の数を指定します。実際のリソースラベルと数量に基づいて設定してください。
requests:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # GPU の数を指定します。実際のリソースラベルと数量に基づいて設定してください。ACS で HPN GPU を使用するには、まず GPU-HPN キャパシティ予約を作成する必要があります。
計算能力品質の定義
ACS は 2 つのコンピューティング品質クラスを提供します。これらのクラスは、さまざまなビジネスシナリオに合わせてリソース割り当てが異なります。
コンピューティング品質 | ラベル | 特徴 | 典型的なシナリオ |
デフォルト | default |
|
|
BestEffort | best-effort |
|
|
Pod に alibabacloud.com/compute-qos ラベルを追加することで、Pod のコンピューティング品質を指定できます。以下の例は、コンピューティング品質を default に設定した Nginx アプリケーションの Deployment を示しています。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
alibabacloud.com/compute-qos: default
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ACS のコンピューティング品質クラスは、Kubernetes ネイティブの QoS クラスとは異なります。ACS のデフォルトのコンピューティング品質クラスは、Kubernetes の Guaranteed QoS クラスに対応します。
BestEffort インスタンスは動的インベントリを使用します。本番環境では、BestEffort インベントリが利用できない場合に ACS が自動的にデフォルトクラスに切り替わるように、インベントリ優先のスケジューリングを構成できます。詳細については、「カスタムリソーススケジューリングポリシー」をご参照ください。
コンピューティングクラスとコンピューティング品質クラスのマッピング
コンピューティングクラス (ラベル) | サポートされるコンピューティング品質 (ラベル) |
汎用 (general-purpose) | デフォルト (default)、BestEffort (best-effort) |
高性能 (パフォーマンス) | デフォルト (default)、BestEffort (best-effort) |
GPU アクセラレーション (gpu) | デフォルト (default)、BestEffort (best-effort) |
GPU-HPN (gpu-hpn) | デフォルト (default) |
CPU ベンダーの指定
汎用およびパフォーマンス拡張コンピューティングクラスでは、Intel と AMD の CPU から選択できます。
CPU ベンダーを指定するには、Pod に alibabacloud.com/cpu-vendors アノテーションを追加するか、ワークロードの Pod テンプレートで alibabacloud.com/cpu-vendors アノテーションを定義します。AMD CPU を指定するには、アカウントをホワイトリストに追加するためにチケットを送信する必要があります。汎用およびパフォーマンス拡張以外のインスタンスタイプでは、CPU ブランドの指定はサポートされていません。このアノテーションでサポートされる値を以下に示します:
キー | 値 | 説明 |
| intel (デフォルト) | Intel CPU を指定します。指定しない場合、デフォルトで intel になります。 |
amd | AMD CPU を指定します。 | |
intel,amd | Intel または AMD の CPU を許可します。ACS は現在のインベントリに基づいて CPU ベンダーを選択します。優先順位を指定することはできません。 |
インスタンスが作成された後、Pod の YAML にある alibabacloud.com/cpu-vendor ラベルを確認して、使用されている CPU ベンダーを検証できます。
以下の例は、CPU ブランドを amd に指定した Nginx アプリケーションの Deployment を示しています。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
annotations:
alibabacloud.com/cpu-vendors: amd
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ワークロードコントローラーの matchLabels セレクターで、alibabacloud.com/compute-class、alibabacloud.com/compute-qos、alibabacloud.com/cpu-vendor などの ACS システムラベルを使用しないでください。これらのラベルはシステムによって変更される可能性があります。これにより、コントローラーが頻繁に Pod を再作成し、アプリケーションの安定性に影響を与える可能性があります。
コア機能
機能 | 説明 |
セキュリティ隔離 | ACS Pod は、安全で信頼性の高いサーバーレスコンテナー環境で実行されます。各 Pod は、軽量サンドボックス技術を使用して基盤レイヤーで完全に隔離されており、Pod 間の干渉はありません。さらに、ACS は可能な限り異なる物理マシンに Pod をスケジュールして、高可用性を向上させます。 |
CPU、メモリ、GPU、およびエフェメラルストレージの構成 |
|
画像 | デフォルトでは、ACS Pod が起動するたびに、Pod に関連付けられた VPC を介してコンテナーイメージをプルします。イメージがパブリックの場合、VPC の NAT ゲートウェイを有効にする必要があります。VPC ネットワーク経由でのイメージプル時間を短縮するために、コンテナーイメージを Alibaba Cloud Container Registry (ACR) に保存することを推奨します。さらに、ACS はプライベート ACR イメージに対して パスワードレス ACR イメージプルを提供します。 |
ストレージ | ACS は、クラウドディスク、NAS、OSS、CPFS の 4 種類の永続ストレージをサポートしています。
|
ネットワーク | デフォルトでは、各 ACS Pod は専用の Pod IP アドレスを使用し、vSwitch から 1 つの Elastic Network Interface (ENI) を占有します。 ACS クラスターでは、Pod は以下の方法で通信します:
|
ログ収集 | Pod の環境変数を構成して |
リソース仕様
ACS クラスターでは、GPU および GPU-HPN コンピューティングクラスの Pod 仕様は、Pod がサブミットされるときに自動的に調整されます。たとえば、GPU コンピューティングクラスの Pod は、リクエストがリミットと等しい Guaranteed QoS クラスに調整されます。ACK クラスターや ACK One クラスターなど、他のチャネルを通じて ACS GPU キャパシティを弾力的に使用する場合、仕様の調整は Pod のメタデータに反映されません。Pod のステータス更新の失敗を防ぐために、サブミット前後で Pod の QoS クラスが変更されないようにしてください。たとえば、GPU コンピューティングクラスの Pod は、Guaranteed QoS クラスでサブミットする必要があります。
汎用コンピューティングクラス
汎用コンピューティングクラス
vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ネットワーク帯域幅 (双方向) (Gbit/s) | ストレージ |
0.25 | 0.5, 1, 2 | N/A | 0.08 | 30 GiB までのストレージは無料です。30 GiB を超える容量は超過分に対して課金され、最大 512 GiB です。 ストレージを拡張するには、NAS ボリュームまたは他のストレージタイプをマウントします。 |
0.5 | 1–4 | 1 | 0.08 | |
1 | 1–8 | 0.1 | ||
1.5 | 2–12 | 1 | ||
2 | 2–16 | |||
2.5 | 3–20 | 1.5 | ||
3 | 3–24 | |||
3.5 | 4–28 | |||
4 | 4–32 | |||
4.5 | 5–36 | |||
5 | 5–40 | |||
5.5 | 6–44 | |||
6 | 6–48 | |||
6.5 | 7–52 | 2.5 | ||
7 | 7–56 | |||
7.5 | 8–60 | |||
8 | 8–64 | |||
8.5 | 9–68 | |||
9 | 9–72 | |||
9.5 | 10–76 | |||
10 | 10–80 | |||
10.5 | 11–84 | |||
11 | 11–88 | |||
11.5 | 12–92 | |||
12 | 12–96 | |||
12.5 | 13–100 | 3 | ||
13 | 13–104 | |||
13.5 | 14–108 | |||
14 | 14–112 | |||
14.5 | 15–116 | |||
15 | 15–120 | |||
15.5 | 16–124 | |||
16 | 16–128 | |||
24 | 24, 48, 96, 192 | N/A | 4.5 | |
32 | 32, 64, 128, 256 | N/A | 6 | |
48 | 48, 96, 192, 384 | N/A | 12.5 | |
64 | 64, 128, 256, 512 | N/A | 20 |
パフォーマンス拡張コンピューティングクラス
vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ネットワーク帯域幅 (双方向) (Gbit/s) | ストレージ |
0.25 | 0.5, 1, 2 | N/A | 0.1 | 30 GiB までのストレージは無料です。30 GiB を超える容量は超過分に対して課金され、最大 512 GiB です。 ストレージを拡張するには、NAS ボリュームまたは他のストレージタイプをマウントします。 |
0.5 | 1–4 | 1 | 0.5 | |
1 | 1–8 | |||
1.5 | 2–12 | |||
2 | 2–16 | 1.5 | ||
2.5 | 3–20 | |||
3 | 3–24 | |||
3.5 | 4–28 | |||
4 | 4–32 | 2 | ||
4.5 | 5–36 | |||
5 | 5–40 | |||
5.5 | 6–44 | |||
6 | 6–48 | 2.5 | ||
6.5 | 7–52 | |||
7 | 7–56 | |||
7.5 | 8–60 | |||
8 | 8–64 | 3 | ||
8.5 | 9–68 | |||
9 | 9–72 | |||
9.5 | 10–76 | |||
10 | 10–80 | 3.5 | ||
10.5 | 11–84 | |||
11 | 11–88 | |||
11.5 | 12–92 | |||
12 | 12–96 | 4 | ||
12.5 | 13–100 | |||
13 | 13–104 | |||
13.5 | 14–108 | |||
14 | 14–112 | 4.5 | ||
14.5 | 15–116 | |||
15 | 15–120 | |||
15.5 | 16–124 | |||
16 | 16–128 | 6 | ||
24 | 24, 48, 96, 192 | N/A | 8 | |
32 | 32, 64, 128, 256 | N/A | 10 | |
48 | 48, 96, 192, 384 | N/A | 16 | |
64 | 64, 128, 256, 512 | N/A | 25 |
16 vCPU または 128 GiB のメモリを超える ACS Pod を使用するには、チケットを送信する必要があります。
コンテナーのリソースリクエストまたはリミット (.resources.requests も .resources.limits も指定しない) を指定しない場合、各 Pod はデフォルトで 2 vCPU と 4 GiB のメモリになります。
ACS は、コンテナーの .resources.requests または .resources.limits の合計を最も近いサポートされている仕様に切り上げることで、Pod の仕様を自動的に調整します。調整された仕様は、alibabacloud.com/pod-use-spec アノテーションで確認できます。仕様が切り上げられた場合、ACS はコンテナーの .resources.requests または .resources.limits を調整して、すべての支払済みリソースが利用されるようにします。
ACS Pod 仕様の調整ロジック
たとえば、.resources.requests または .resources.limits の合計が 2 vCPU と 3.5 GiB のメモリである場合、ACS は起動時に Pod の仕様を自動的に 2 vCPU と 4 GiB のメモリに調整します。追加のリソースは最初のコンテナーに適用され、Pod には alibabacloud.com/pod-use-spec=2-4Gi というアノテーションが付けられます。リソース宣言の例:
apiVersion: v1
kind: Pod
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 2 # 2 vCPU をリクエストします。
memory: "3.5Gi" # 3.5 GiB のメモリをリクエストします。
ephemeral-storage: "30Gi" # 30 GiB のストレージをリクエストします。調整後のリソース宣言:
apiVersion: v1
kind: Pod
metadata:
annotations:
alibabacloud.com/pod-use-spec: "2-4Gi"
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 2 # 2 vCPU をリクエストします。
memory: "4Gi" # 4 GiB のメモリをリクエストします。
ephemeral-storage: "30Gi" # 30 GiB のストレージをリクエストします。アノテーションを使用した Pod 仕様の指定
適用範囲
この機能は、汎用およびパフォーマンス拡張コンピューティングクラスの CPU Pod のみをサポートします。
アノテーションでサポートされる最大仕様は 64 vCPU と 512 GiB のメモリであり、「汎用コンピューティングクラスの仕様」で説明されている制限に従います。
使用方法
Pod の Quality of Service (QoS) クラスが Burstable (.resources.limits > .resources.requests) であるシナリオでは、アノテーション alibabacloud.com/pod-required-spec: "X-YGi" を指定することで、Pod のターゲットリソース仕様を宣言できます。リソース仕様は <CPU>-<Memory> 形式である必要があります。ここで、CPU はコア単位 (例:「2」は 2 vCPU を表す) で、メモリは GiB 単位 (例:「4Gi」は 4 GiB を表す) で指定します。詳細なリソース調整と使用規則は以下のとおりです:
仕様のフォーマットが無効な場合 (例:単位が欠落している、Mi を使用している、順序が間違っている)、Pod の作成は失敗します。
アノテーションが設定されているが、どのコンテナーも
.resourcesを定義していない場合、ACS はアノテーションの値を厳密に遵守し、デフォルトの仕様 (例:2 vCPU と 4 GiB のメモリ) にはフォールバックしません。アノテーションの値がすべてのコンテナーの
.resources.requestsの合計よりも小さい場合、Pod の作成は失敗します。アノテーションの値がすべてのコンテナーの
.resources.limitsの合計を超える場合、ACS はアノテーションの値をターゲット仕様として使用します。複数コンテナーの Pod では、最初のコンテナーがプライマリコンテナーとして識別されます。アノテーションの値と現在の
limitsの合計との差分は、プライマリコンテナーの.resources.limits(および必要に応じて.resources.requests) に割り当てられ、Pod の総リソースがターゲット仕様と一致するようになります。
例
たとえば、アノテーションを alibabacloud.com/pod-required-spec: "2-4Gi" に設定し、コンテナーの .resources.requests または .resources.limits の合計が 1 vCPU と 2 GiB のメモリである場合、ACS は Pod の起動時に Pod の仕様を自動的に 2 vCPU と 4 GiB のメモリに設定します。追加のリソースは最初のコンテナーに適用され、Pod には alibabacloud.com/pod-use-spec=2-4Gi というアノテーションが付けられます。
リソース宣言の例:
この例では、.resources.limits.memory は 3.5 GiB です。apiVersion: v1
kind: Pod
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
annotations:
alibabacloud.com/pod-required-spec: "2-4Gi"
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 1 # 1 vCPU をリクエストします。
memory: "2Gi" # 2 GiB のメモリをリクエストします。
ephemeral-storage: "30Gi" # 30 GiB のストレージをリクエストします。
limits:
cpu: 2 # 2 vCPU をリクエストします。
memory: "3.5Gi" # 3.5 GiB のメモリをリクエストします。
ephemeral-storage: "30Gi" # 30 GiB のストレージをリクエストします。調整後のリソース宣言:
調整後の宣言では、.resources.limits.memory は 3.5 GiB から 4 GiB に変更されます。apiVersion: v1
kind: Pod
metadata:
annotations:
alibabacloud.com/pod-required-spec: "2-4Gi"
alibabacloud.com/pod-use-spec: "2-4Gi"
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 1 # 1 vCPU をリクエストします。
memory: "2Gi" # 2 GiB のメモリをリクエストします。
ephemeral-storage: "30Gi" # 30 GiB のストレージをリクエストします。
limits:
cpu: 2 # 2 vCPU をリクエストします。
memory: "4Gi" # 4 GiB のメモリをリクエストします。
ephemeral-storage: "30Gi" # 30 GiB のストレージをリクエストします。アクセラレーションコンピューティングクラス
ACS がサポートする GPU モデルは以下のとおりです。仕様はモデルによって異なります。具体的なマッピングについては、チケットを送信してください。
GU8TF
GPU (カード) | vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ストレージ (GiB) |
1 (96 GB GPU メモリ) | 2 | 2–16 | 1 | 30–256 |
4 | 4–32 | 1 | ||
6 | 6–48 | 1 | ||
8 | 8–64 | 1 | ||
10 | 10–80 | 1 | ||
12 | 12–96 | 1 | ||
14 | 14–112 | 1 | ||
16 | 16–128 | 1 | ||
22 | 22, 32, 64, 128 | N/A | ||
2 (96 GB × 2 GPU メモリ) | 16 | 16–128 | 1 | 30–512 |
32 | 32, 64, 128, 230 | N/A | ||
46 | 64, 128, 230 | N/A | ||
4 (96 GB × 4 GPU メモリ) | 32 | 32, 64, 128, 256 | N/A | 30–1024 |
64 | 64, 128, 256, 460 | N/A | ||
92 | 128, 256, 460 | N/A | ||
8 (96 GB GPU メモリ) | 64 | 64, 128, 256, 512 | N/A | 30–2048 |
128 | 128, 256, 512, 920 | N/A | ||
184 | 256, 512, 920 | N/A |
GU8TEF
GPU (カード) | vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ストレージ (GiB) |
1 (141 GB GPU メモリ) | 2 | 2–16 | 1 | 30–768 |
4 | 4–32 | 1 | ||
6 | 6–48 | 1 | ||
8 | 8–64 | 1 | ||
10 | 10–80 | 1 | ||
12 | 12–96 | 1 | ||
14 | 14–112 | 1 | ||
16 | 16–128 | 1 | ||
22 | 22, 32, 64, 128, 225 | N/A | ||
2 × 141 GB GPU メモリ | 16 | 16–128 | 1 | 30–1536 |
32 | 32, 64, 128, 256 | N/A | ||
46 | 64, 128, 256, 450 | N/A | ||
4 (141 GB × 4 GPU メモリ) | 32 | 32, 64, 128, 256 | N/A | 30–3072 |
64 | 64, 128, 256, 512 | N/A | ||
92 | 128, 256, 512, 900 | N/A | ||
8 × 141 GB GPU メモリ | 64 | 64, 128, 256, 512 | N/A | 30–6144 |
128 | 128, 256, 512, 1024 | N/A | ||
184 | 256, 512, 1024, 1800 | N/A |
L20 (GN8IS)
GPU (カード) | vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ストレージ (GiB) |
1 (48 GB GPU メモリ) | 2 | 2–16 | 1 | 30–256 |
4 | 4–32 | 1 | ||
6 | 6–48 | 1 | ||
8 | 8–64 | 1 | ||
10 | 10–80 | 1 | ||
12 | 12–96 | 1 | ||
14 | 14–112 | 1 | ||
16 | 16–120 | 1 | ||
2 (48 GB × 2 GPU メモリ) | 16 | 16–128 | 1 | 30–512 |
32 | 32, 64, 128, 230 | N/A | ||
4 (48 GB × 4 GPU メモリ) | 32 | 32, 64, 128, 256 | N/A | 30–1024 |
64 | 64, 128, 256, 460 | N/A | ||
8 (48 GB × 8 GPU メモリ) | 64 | 64, 128, 256, 512 | N/A | 30–2048 |
128 | 128, 256, 512, 920 | N/A |
L20X (GX8SF)
GPU (カード) | vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ストレージ (GiB) |
8 (141 GB × 8 GPU メモリ) | 184 | 1800 | N/A | 30–6144 |
P16EN
GPU (カード) | vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ストレージ (GiB) |
1 (96 GB GPU メモリ) | 2 | 2–16 | 1 | 30–384 |
4 | 4–32 | 1 | ||
6 | 6–48 | 1 | ||
8 | 8–64 | 1 | ||
10 | 10–80 | 1 | ||
2 (96 GB × 2 GPU メモリ) | 4 | 4–32 | 1 | 30–768 |
6 | 6–48 | 1 | ||
8 | 8–64 | 1 | ||
16 | 16–128 | 1 | ||
22 | 32, 64, 128, 225 | N/A | ||
4 (96 GB × 4 GPU メモリ) | 8 | 8–64 | 1 | 30–1536 |
16 | 16–128 | 1 | ||
32 | 32, 64, 128, 256 | N/A | ||
46 | 64, 128, 256, 450 | N/A | ||
8 (96 GB × 8 GPU メモリ) | 16 | 16–128 | 1 | 30–3072 |
32 | 32, 64, 128, 256 | N/A | ||
64 | 64, 128, 256, 512 | N/A | ||
92 | 128, 256, 512, 900 | N/A | ||
16 × 96 GB GPU メモリ | 32 | 32, 64, 128, 256 | N/A | 30–6144 |
64 | 64, 128, 256, 512 | N/A | ||
128 | 128, 256, 512, 1024 | N/A | ||
184 | 256, 512, 1024, 1800 | N/A |
G49E
GPU (カード) | vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ストレージ (GiB) |
1 (48 GB GPU メモリ) | 2 | 2–16 | 1 | 30–256 |
4 | 4–32 | 1 | ||
6 | 6–48 | 1 | ||
8 | 8–64 | 1 | ||
10 | 10–80 | 1 | ||
12 | 12–96 | 1 | ||
14 | 14–112 | 1 | ||
16 | 16–120 | 1 | ||
2 (48 GB × 2 GPU メモリ) | 16 | 16–128 | 1 | 30–512 |
32 | 32, 64, 128, 230 | N/A | ||
4 (48 GB × 4 GPU メモリ) | 32 | 32, 64, 128, 256 | N/A | 30–1024 |
64 | 64, 128, 256, 460 | N/A | ||
8 (48 GB × 8 GPU メモリ) | 64 | 64, 128, 256, 512 | N/A | 30–2048 |
128 | 128, 256, 512, 920 | N/A |
T4
GPU (カード) | vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ストレージ (GiB) |
1 (16 GB GPU メモリ) | 2 | 2–8 | 1 | 30–1536 |
4 | 4–16 | 1 | ||
6 | 6–24 | 1 | ||
8 | 8–32 | 1 | ||
10 | 10–40 | 1 | ||
12 | 12–48 | 1 | ||
14 | 14–56 | 1 | ||
16 | 16–64 | 1 | ||
24 | 24, 48, 90 | N/A | 30–1536 | |
2 (16 GB × 2 GPU メモリ) | 16 | 16–64 | 1 | |
24 | 24, 48, 96 | N/A | ||
32 | 32, 64, 128 | N/A | ||
48 | 48, 96, 180 | N/A |
A10
GPU (カード) | vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ストレージ (GiB) |
1 (24 GB GPU メモリ) | 2 | 2–8 | 1 | 30–256 |
4 | 4–16 | 1 | ||
6 | 6–24 | 1 | ||
8 | 8–32 | 1 | ||
10 | 10–40 | 1 | ||
12 | 12–48 | 1 | ||
14 | 14–56 | 1 | ||
16 | 16–60 | 1 | ||
2 (24 GB × 2 GPU メモリ) | 16 | 16–64 | 1 | 30–512 |
32 | 32, 64, 120 | N/A | ||
4 (24 GB × 4 GPU メモリ) | 32 | 32, 64, 128 | N/A | 30–1024 |
64 | 64, 128, 240 | N/A | ||
8 (24 GB × 8 GPU メモリ) | 64 | 64, 128, 256 | N/A | 30–2048 |
128 | 128, 256, 480 | N/A |
G59
GPU (カード) | vCPU | メモリ (GiB) | メモリステップサイズ (GiB) | ストレージ (GiB) | ネットワーク |
1 (32 GB GPU メモリ) | 2 | 2–16 | 1 | 30–256 | vCPU あたり 1 Gbps |
4 | 4–32 | 1 | |||
6 | 6–48 | 1 | |||
8 | 8–64 | 1 | |||
10 | 10–80 | 1 | |||
12 | 12–96 | 1 | |||
14 | 14–112 | 1 | |||
16 | 16–128 | 1 | |||
22 | 22, 32, 64, 128 | N/A | |||
2 (32 GB × 2 GPU メモリ) | 16 | 16–128 | 1 | 30–512 | |
32 | 32, 64, 128, 256 | N/A | |||
46 | 64, 128, 256, 360 | N/A | |||
4 (32 GB × 4 GPU メモリ) | 32 | 32, 64, 128, 256 | N/A | 30–1024 | |
64 | 64, 128, 256, 512 | N/A | |||
92 | 128, 256, 512, 720 | N/A | |||
8 (32 GB × 8 GPU メモリ) | 64 | 64, 128, 256, 512 | N/A | 30–2048 | |
128 | 128, 256, 512, 1024 | N/A | 100 Gbps | ||
184 | 256, 512, 1024, 1440 | N/A |
すべての GPU モデルは、従量課金、キャパシティ予約、および BestEffort シナリオで同じ仕様を共有します。具体的には:
16 GiB 以下のメモリ仕様の場合、メモリオーバーヘッドは ACS によって処理されます。16 GiB を超えるメモリ仕様の場合、メモリオーバーヘッドは対応する Pod に割り当てられます。安定した運用を保証するために、アプリケーションに十分なリソースを予約してください。
イメージサイズを含む 30 GiB までのシステムディスクには追加料金はかかりません。システムディスクが 30 GiB を超える場合、超過分に対して課金されます。
仕様の自動調整
仕様を指定しない場合、GPU コンテナー Pod は GPU タイプに基づいて最小の Pod 仕様を使用します。たとえば、2 vCPU、2 GiB のメモリ、および 1 つの GPU カードです。
ACS は、サポートされていない仕様を自動的に調整します。調整後、コンテナーの .resources.requests は変更されませんが、Pod の仕様は alibabacloud.com/pod-use-spec アノテーションで確認できます。コンテナーの指定されたリソース制限 (resources.limits) が Pod の仕様を超える場合、ACS はコンテナーのリソース制限を Pod の仕様に設定します。
CPU とメモリの調整ロジック:すべてのコンテナーの総リソースが 2 vCPU と 3.5 GiB のメモリに合計される場合、ACS は Pod を自動的に 2 vCPU と 4 GiB のメモリに調整します。追加のリソースは最初のコンテナーに適用され、Pod には
alibabacloud.com/pod-use-spec=2-4Giというアノテーションが付けられます。Pod 内の単一のコンテナーが 3 vCPU と 5 GiB のメモリのリソース制限を指定した場合、コンテナーのリソース制限は 2 vCPU と 5 GiB に調整されます。GPU 調整ロジック:リクエストされた GPU 数が表に記載されていない場合、Pod のサブミットは失敗します。
GPU-HPN コンピューティングクラス
GPU-HPN コンピューティングクラスの場合、ACS はリミットをリクエストと等しく設定することで、リソースリクエストとリミットを一致させます。さらに、Pod の仕様はノードのキャパシティによって制約されます。仕様がノードのキャパシティを超える場合、リソース不足のため Pod は保留状態のままになります。特定のノード仕様の詳細については、購入仕様のドキュメントをご参照ください。
Kubernetes アプリケーションの制限
ACS は仮想ノードを介して Kubernetes とシームレスに統合されます。ACS Pod は集中管理された物理ノードにはデプロイされず、Alibaba Cloud のリソースプールに分散されます。パブリッククラウドのセキュリティ要件と仮想ノードの制限により、ACS は HostPath や DaemonSet などの特定の Kubernetes 機能をサポートしていません。以下の表にこれらの制限の詳細を示します。
制限事項 | 説明 | 検証失敗時の処理ポリシー | 推奨される代替案 |
DaemonSet | DaemonSet ワークロードはサポートされていません。 | Pod は実行されますが、期待どおりに機能しません。 | サイドカーパターンを使用して、Pod 内に複数のコンテナーをデプロイします。 |
NodePort サービス | このサービスタイプは、ホストポートをコンテナーにマッピングします。 | 送信は拒否されます。 |
|
HostNetwork | ホストポートをコンテナーにマッピングすることはサポートされていません。 | 値は | オプション |
HostIPC | コンテナーとホストプロセス間のプロセス間通信はサポートされていません。 | 値は | 不要 |
HostPID | コンテナーはホストの PID 名前空間を参照できません。 | 値は | 不要 |
HostUsers | ユーザー名前空間の制限 | 値は空に書き換えられます。 | 不要 |
DNSPolicy | 特定の DNSPolicy の使用を制限します 説明
|
| 許可された値のいずれかを使用します。 |
コンテナー環境変数 | Kubernetes API サーバーのデフォルトの制約に加えて、ACS では GPU および GPU-HPN コンピューティングクラスの場合、環境変数名が文字、数字、アンダースコア、ドット、またはハイフンで構成されている必要があります。名前は数字で始めることはできません。 | Pod の起動に失敗します。 | 必要なフォーマットに従った環境変数名を使用します。 |
ポートの使用
以下の表は、ACS が使用するポートの一覧です。サービスをデプロイする際には、これらのポートの使用を避けてください。
ポート | 説明 |
111, 10250, 10255 | ACS クラスターが exec、ログ、メトリック、およびその他のインターフェイスに使用します。 |