デフォルトでは、各 Alibaba Cloud Container Service (ACS) Pod には 30 GiB の無料エフェメラルストレージが含まれています。 大規模なコンテナイメージや大量のログ出力に対応するなど、ワークロードでより多くの領域が必要な場合は、Pod の作成時に追加のストレージを宣言してください。
コンテナイメージは Pod のエフェメラルストレージに保存されます。 イメージによって消費される領域は、イメージサイズの少なくとも 2 倍です。実際の量はイメージの圧縮率によって異なります。 エフェメラルストレージのサイズを決定する際は、この点を考慮してください。
課金
デフォルトの 30 GiB の無料枠を超えるストレージは、ディスクの価格設定に基づいて課金されます:
料金 = ディスクの単価 × エフェメラルストレージの超過分 × 期間
| 変数 | 説明 |
|---|---|
| ディスクの単価 | PL1 ESSD の従量課金価格。 リージョンごとの価格については、EBS 料金 をご参照ください。 |
| エフェメラルストレージの超過分 | 30 GiB を超えて宣言した追加ストレージ。 |
| 期間 | 秒単位で測定されます。 エフェメラルストレージは Pod と共に作成およびリリースされます。 |
前提条件
開始する前に、以下の準備ができていることを確認してください:
-
kubectl で接続設定済みの ACS クラスター
-
対象の名前空間に Deployment を作成する権限
エフェメラルストレージの設定
利用可能な方法は 2 つあります。コンテナリソースの仕様でエフェメラルストレージを制御する特別な要件がない限り、アノテーションを使用する方法 (方法 1) を使用してください。
方法 1 (推奨):アノテーションの追加
Pod テンプレートに alibabacloud.com/extra-ephemeral-storage アノテーションを追加します。 この値は、デフォルトの 30 GiB に加えて追加のストレージを指定します。
方法 2:コンテナリソースの設定
コンテナの .resources.requests.ephemeral-storage でエフェメラルストレージの合計サイズを設定します。
宣言された値が 30 GiB 未満の場合、ACS は自動的にエフェメラルストレージを 30 GiB に拡張します。 30 GiB を超えて宣言されたストレージのみが、課金目的で超過分としてカウントされます。
例:20 GiB のエフェメラルストレージの追加
次の例では、20 GiB のエフェメラルストレージを追加で宣言し、合計を 50 GiB (デフォルト 30 GiB + 追加 20 GiB) にします。
ステップ 1:YAML ファイルの作成
次のいずれかの方法を使用して、extra-storage.yaml という名前のファイルを作成します。
方法 1:アノテーションの追加
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
annotations:
alibabacloud.com/extra-ephemeral-storage: "20Gi" # デフォルトの 30 GiB に加えて追加されるストレージ。
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
ports:
- containerPort: 80
方法 2:コンテナリソースの設定
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
ports:
- containerPort: 80
resources:
requests:
ephemeral-storage: 50Gi # エフェメラルストレージの合計サイズ (デフォルト 30 GiB + 追加 20 GiB)。
ステップ 2:ワークロードの作成
kubectl apply -f extra-storage.yaml
ステップ 3:Pod の実行状態の確認
kubectl get pod
期待される出力:
NAME READY STATUS RESTARTS AGE
test-ff8767b7b-**** 1/1 Running 0 54s
ステップ 4:エフェメラルストレージサイズの確認
a. Pod アノテーションの確認
alibabacloud.com/pod-ephemeral-storage アノテーションは、GiB 単位の合計エフェメラルストレージを示します。
kubectl describe pod test-ff8767b7b-**** | grep alibabacloud.com/pod-ephemeral-storage
期待される出力:
alibabacloud.com/pod-ephemeral-storage: 50Gi
b. コンテナファイルシステムの確認
コンテナにログインし、df -h を実行して、ファイルシステムに新しいサイズが反映されていることを確認してください。
kubectl exec -it test-ff8767b7b-**** -- sh
df -h
期待される出力 — overlay の行は、コンテナで利用可能な 50 GiB のルートファイルシステムを示しています:
Filesystem Size Used Avail Use% Mounted on
overlay 50G 2.7G 45G 6% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.8G 0 2.8G 0% /sys/fs/cgroup
/dev/vda5 50G 2.7G 45G 6% /etc/hosts
shm 64M 0 64M 0% /dev/shm
tmpfs 4.0G 12K 4.0G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 2.8G 0 2.8G 0% /proc/acpi
tmpfs 2.8G 0 2.8G 0% /proc/scsi
tmpfs 2.8G 0 2.8G 0% /sys/firmware