【ストレージクラス】

StorageClass(Kubernetes) とは?

💡 「このサイズのストレージください」に自動で応えてくれる注文書テンプレート
📌 このページのポイント
StorageClass:動的プロビジョニングの流れ Pod アプリ 要求 PVC 10Gi欲しい standard指定 参照 StorageClass name: standard provisioner: ebs.csi... type: gp3 reclaimPolicy: Delete 自動生成 PV EBSディスク PVCが作られると → StorageClassを参照 → PV(実ストレージ)を自動プロビジョニング AWS EBS / GCE PD / Azure Disk などプロビジョナーを差し替えるだけでクラウド対応 動的プロビジョニング
StorageClassを使ったPVの動的プロビジョニングの流れ
ひよこ ひよこ

StorageClassって何をするものなの?

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

KubernetesPodがデータを保存したいとき、PersistentVolumeClaim(PVC)というリクエストを出すんだよ。StorageClassはそのPVCを受け取って「どんなストレージを、どんな設定で作るか」を自動で処理するためのテンプレートなんだ。

ひよこ ひよこ

StorageClassがないとどうなるの?

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

管理者が手動でPersistentVolume(PV)を事前に作っておく必要があるんだよ。StorageClassを使えば、PVCを作るだけで必要なサイズのPVが自動で生成される「動的プロビジョニング」ができるようになるんだ。

ひよこ ひよこ

動的プロビジョニングって便利そうだね!

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

そうだよ。たとえばAWSなら `provisioner: ebs.csi.aws.com` を指定したStorageClassを作っておくと、PVCに `storageClassName: standard` と書くだけでEBSボリュームが自動で作られてPodマウントされるんだ。

ひよこ ひよこ

クラウドによってStorageClassが違うってこと?

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

そうなんだよ。AWS EBS・GCE PersistentDisk・Azure Diskそれぞれ専用のプロビジョナーがあってね。でもStorageClassの定義さえ切り替えれば、PVCやPodの設定は変えなくていいから、クラウド間の移植がしやすくなるんだ。

ひよこ ひよこ

`reclaimPolicy` っていうのも見たんだけど?

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

PVCが削除されたあとにPV(実際のディスク)をどうするかの設定だよ。`Delete` だとPVCと一緒にディスクも消去される。`Retain` だとディスクが残るから、大切なデータは `Retain` にしておくのが安全だよ。本番では特に気をつけたい設定だね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「StorageClass」って出てきたら「KubernetesがPVを自動作成するときのテンプレート設定」と思えればだいたいOK!
📖 おまけ:英語の意味
「StorageClass」 = ストレージクラス(ストレージの種別定義)
💬 Kubernetesのリソース種別の一つだよ。クラウドプロバイダのディスクサービスと連携してPersistentVolumeを自動生成する仕組みを提供するよ。
← 用語集にもどる