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

Persistent Volume とは?

💡 コンテナが消えてもデータだけは残る金庫
📌 このページのポイント
PersistentVolume(PV)と PVC のバインディング Pod アプリコンテナ volumeMounts: 参照 PVC PersistentVolumeClaim 要求: 10Gi, RWO storageClass: fast Bind PV PersistentVolume 容量: 10Gi accessModes: RWO storageClass: fast 実ストレージ EBS / NFS / Ceph ライフサイクル Available Bound Released Delete Retain / Recycle / Delete の回収ポリシーで制御 PVCの要求条件にマッチするPVが自動バインドされる
PVとPVCのバインディングのイメージ
ひよこ ひよこ

コンテナのデータって消えちゃうの?

ペンギン先生 ペンギン先生

そうなんだ。コンテナは基本的に使い捨てで、再起動するとファイルシステムは初期状態に戻るよ。だからデータベースのデータみたいに残しておきたいものはPersistent Volumeに保存するんだ。

ひよこ ひよこ

PVとPVCって何が違うの?

ペンギン先生 ペンギン先生

PVが実際のストレージハードディスクみたいなもの)で、PVCは『こういうストレージが欲しいです』という申請書だよ。PodはPVCを通じてストレージを要求して、Kubernetesが条件に合うPVを割り当てるんだ。

ひよこ ひよこ

毎回PVを手動で作るの?

ペンギン先生 ペンギン先生

StorageClassを設定しておけば、PVCを作るだけで自動的にPVが作られるDynamic Provisioningが使えるよ。AWSならEBSボリューム、GCPならPDが自動で作成されるんだ。

ひよこ ひよこ

アクセスモードっていうのも聞いたことがあるけど…

ペンギン先生 ペンギン先生

PVには3つのアクセスモードがあるよ。ReadWriteOnce(1つのノードから読み書き)、ReadOnlyMany(複数ノードから読み取り専用)、ReadWriteMany(複数ノードから読み書き)だ。バックエンドストレージによって対応するモードが異なるから注意が必要だね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Persistent Volume」って出てきたら「Kubernetesでデータを永続化するストレージ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Persistent Volume」 = 永続ボリューム
💬 Persistent(永続的な)+ Volume(ストレージ領域)で、コンテナが消えても残るストレージだよ
← 用語集にもどる