一時ボリュームは、キャッシュデータなどの一時データを格納するために使用できます。 展開を作成するときに、永続ボリューム要求 (PVC) テンプレートVolumeClaimTemplate
を使用して、各ポッドの一時的なボリュームを作成できます。 このPVCテンプレートを使用して作成されたPVCおよび永続ボリューム (PV) は、それらを使用するポッドとともに自動的に削除できます。 このトピックでは、デプロイメントを使用してエフェメラルボリュームを作成する方法と、エフェメラルボリュームをポッドと一緒に削除できることを確認する方法について説明します。
前提条件
Kubernetes 1.22以降を実行するContainer Service for Kubernetes (ACK) クラスターが作成されます。 詳細については、「ACK管理クラスターの作成」をご参照ください。
デプロイメントを使用して、ACKサーバーレスクラスターの一時的なボリュームを作成することはできません。
適用シナリオ
アプリケーションは、一時的なデータを保存するために一時的なボリュームを使用します。
アプリケーションは通常、大量のログデータを生成します。 一時的な排他的ボリュームを使用して、ログデータを保存できます。
デプロイメントを使用したエフェメラルボリュームの作成
デプロイを作成するときに、VolumeClaimTemplate
を使用して自動的にPVCとPVCを作成できます。 VolumeClaimTemplate
はPVCテンプレートです。 このテンプレートを使用してシステムが作成するPVCの数は、デプロイで指定されたレプリケートされたポッドの数と同じです。 PVCは同じ構成を使用しますが、名前が異なります。
次のコードブロックを使用して、2つのポッドをデプロイするDeploymentを作成します。
デプロイメントに加えて、StatefulSetsおよびポッドYAMLファイルを使用してエフェメラルボリュームを作成することもできます。
パラメーター
説明
レプリカ
この例では、2つのレプリケートポッドが作成されます。
volumeMounts.mo untPath
ディスクボリュームがマウントされるコンテナーパス。
accessModes
アクセスモード。
一時的な
ボリュームタイプを短命に設定します。
storageClassName
この例では、パラメーターはalicloud-disk-topology-alltypeに設定されています。 システムは、cloud_essd、cloud_ssd、およびcloud_efficiencyのディスクタイプに基づいてボリュームを作成しようとします。
次のコマンドを実行して、展開を展開します。
kubectl create -f ephemeral-example.yaml
次のコマンドを実行してポッドを照会します。
kubectl get pod
期待される出力:
NAME READY STATUS RESTARTS AGE ephemeral-example-65d6c5fb87-5jbjf 1/1 Running 0 4m55s ephemeral-example-65d6c5fb87-jgt8x 1/1 Running 0 4m55s
次のコマンドを実行してPVCを照会します。
kubectl get pvc
期待される出力:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE ephemeral-example-65d6c5fb87-5jbjf-scratch-volume Bound d-2ze7cjui6henh7z61393 30Gi RWO alicloud-disk-topology-alltype 5m42s ephemeral-example-65d6c5fb87-jgt8x-scratch-volume Bound d-2zehi4gnz4btacaf8lh2 30Gi RWO alicloud-disk-topology-alltype 5m42s
PvcとPVがポッドと一緒に削除されることを確認します
次のコマンドを実行して、ポッドの数を1にスケーリングします。
kubectl scale deploy ephemeral-example --replicas=1 deployment.apps/ephemeral-example scaled
次のコマンドを実行して、ポッドの数を照会します。
kubectl get pod
期待される出力:
NAME READY STATUS RESTARTS AGE ephemeral-example-65d6c5fb87-5jbjf 1/1 Terminating 0 7m13s ephemeral-example-65d6c5fb87-jgt8x 1/1 Running 0 7m13s
次のコマンドを実行して、PVCの数を照会します。
kubectl get pvc
期待される出力:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE ephemeral-example-65d6c5fb87-jgt8x-scratch-volume Bound d-2zehi4gnz4btacaf8lh2 30Gi RWO alicloud-disk-topology-alltype 8m1s
出力は、PVCがポッドとともに削除されることを示します。
関連ドキュメント
エフェメラルボリュームの使用状況を監視する方法の詳細については、「storage-operatorを使用してACKクラスターのストレージリソースを監視する」をご参照ください。
ディスクを使用してデータを永続化する方法の詳細については、「ディスクボリューム」をご参照ください。