7.2. ライフサイクルおよび永続ボリューム要求
ストレージリソースのライフサイクルを特定の Pod にバインドするには、Pod のボリュームソース内で永続ボリューム要求 (PVC) パラメーターを設定します。このセットアップにより、エフェメラルボリュームコントローラーは、Pod の作成時に同じ namespace に PVC を作成し、Pod の削除時にはその PVC を自動的に削除します。
ラベル、アノテーション、および永続ボリューム要求 (PVC) のフィールドの全セットがサポートされます。
エフェメラルボリュームコントローラーは、汎用エフェメラルボリュームの作成 の手順に示されているテンプレートから PVC オブジェクトを作成します。
ボリュームのバインディングとプロビジョニングは、以下の 2 つの方法のいずれかでトリガーされます。
即時実行 (ストレージクラスが Immediate ボリュームバインディングを使用している場合)。
即時バインディングの場合、ボリュームが利用可能になった後、スケジューラーはそのボリュームにアクセスできるノードを強制的に選択することになります。
Pod がノードに仮スケジュールされたタイミング (
WaitForFirstConsumerボリュームバインディングモード)。スケジューラーは Pod に適したノードを選択できるため、このボリュームバインディングオプションは、汎用エフェメラルボリュームに推奨されます。
リソースの所有権に関しては、汎用エフェメラルストレージを持つ Pod は、そのエフェメラルストレージを提供する PVC の所有者となります。Pod が削除されると、Kubernetes ガベージコレクターによって PVC が削除され、ストレージクラスのデフォルトの再利用ポリシーがボリュームを削除することになっているため、通常はボリュームの削除がトリガーされます。再利用ポリシーが Retain に設定されたストレージクラスを使用することで、疑似的なエフェメラルローカルストレージを作成できます。ストレージは Pod よりも長く存続するため、この場合は、ボリュームのクリーンアップが別途行われるようにする必要があります。この PVC が存在する間は、他の PVC と同じように使用できます。特に、これはボリュームのクローン作成またはスナップショット作成時にデータソースとして参照できます。PVC オブジェクトは、ボリュームの現在のステータスも保持します。