【パーシステントボリューム】

Persistent Volume とは?

最終更新:
💡 Podの入れ替えと、データの置き場所を分ける

Kubernetesで、個々のPodとは独立したライフサイクルを持つストレージのリソース。PodはPVCを通して利用し、データが残る条件は実ストレージや削除時の設定にも関係します。

📌 このページのポイント
PV・PVC:保存先と利用の申し込みPodアプリの実行PVC利用の申し込みPV保存先の資源参照対応実際のストレージPodと別の寿命削除後の扱いは設定で変わる
Podが参照するPVCは利用条件の申し込み、PVは保存先を表す資源。実ストレージの管理や削除後の扱いは設定で変わります。
ひよこ ひよこ
コンテナを作り直すと、ファイルはどうなる?
ペンギン先生 ペンギン先生
コンテナ内だけで書いたファイルは、作り直すと失われる。残したいデータは適切なボリュームへ保存するんだ。PVは、使うPodとは別のライフサイクルを持つストレージのリソースで、保存先の実装を表す情報も持つよ。
ひよこ ひよこ
PVとPVCは、どう違う?
ペンギン先生 ペンギン先生
PVは用意された保存領域を表すもの、PVCは「この容量と使い方で欲しい」という要求だよ。条件に合うPVと結び付けられ、PodはPVCを参照して利用する。合うPVや作成する仕組みがなければ、要求が待機したままになることもあるんだ。
ひよこ ひよこ
ストレージは、自動で作れる?
ペンギン先生 ペンギン先生
StorageClassと対応するプロビジョナーなどが設定されていれば、PVCに応じて動的に用意できるよ。アクセスモードにはReadWriteOnce、ReadOnlyMany、ReadWriteMany、ReadWriteOncePodがある。ReadWriteOnceは一つのノードであって、一つのPodだけという意味ではないんだ。対応はドライバーなどで確認しよう。
ひよこ ひよこ
Podと別なら、データは絶対に消えない?
ペンギン先生 ペンギン先生
絶対ではないよ。例えばPVCを削除した後の扱いはreclaim policyで変わり、Deleteなら対応する実ストレージも削除される。保存先の障害や誤操作に備えるバックアップも別に考えよう。アクセスモードだけで、書き込み禁止やデータ保護を全て保証するわけでもないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Persistent Volume」って出てきたら「Kubernetesで、Podとは別に管理するデータの置き場所」と思えばだいたいOK!
📖 おまけ:英語の意味
「Persistent Volume」 = 永続ボリューム
💬 Persistentは持続する、Volumeは保存領域。個々のPodに依存しないストレージを扱いますが、あらゆる削除や障害からデータを守る保証ではありません。

参考資料

← 用語集にもどる