【ストレージクラス】

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を自動生成する仕組みを提供するよ。
← 用語集にもどる