1.1.5 ボリューム

Kubernetesでは、ボリュームとは、ポッドの存続中にポッド内のコンテナ全体に永続するストレージのことです。ポッド内のコンテナが再起動されたときにも、Kubernetesボリューム内のデータは保持されます。さらに、Kubernetesボリュームはポッド内のコンテナ間で共有できるため、異なるコンテナがローカルにアクセスできるファイル・ストアを提供することになります。

Kubernetesは、データの保存方法と永続方法を定義する様々なボリューム・タイプをサポートしています。その詳細は、次の場所にあるアップストリームのドキュメントを参照してください。

https://kubernetes.io/docs/concepts/storage/volumes/

一般に、Kubernetesボリュームにはポッドの存続期間と一致する存続期間があります。また、ボリューム内のデータは、そのボリュームが存在しているポッドを使用しているかぎり永続します。コンテナはポッド内で再起動できますが、データは永続しています。ポッドが破棄されると、通常は、それと一緒にデータも破棄されます。

場合によっては、ボリュームのライフサイクルをポッドのライフサイクルから切り離すために、さらに永続性が必要になることがあります。Kubernetesには、PersistentVolumePersistentVolumeClaimの概念が導入されています。PersistentVolumeは、ポッドとは無関係に存在すること以外はボリュームと同じです。ストレージ・リソース・タイプ(NFSやiSCSIなど)にアクセスする方法を定義します。PersistentVolumeClaimは、PersistentVolumeで使用可能なリソースを使用するように構成できます。また、PersistentVolumeClaimでは、コンシューマのリソースに適用する必要のある割当て量とアクセス・モードを指定します。その後、作成したポッドは、そうしたリソース(適切なアクセス・モードとサイズ制限が適用されたもの)にアクセスするためにPersistentVolumeClaimを使用できます。

PersistentVolumesの詳細は、次の場所にあるアップストリームのドキュメントを参照してください。

https://kubernetes.io/docs/concepts/storage/persistent-volumes/