【ストレージクラス】

StorageClass(Kubernetes) とは?

最終更新:
💡 ストレージ注文に使う、種類と設定のメニュー

Kubernetesで提供するストレージの種別や設定を定義するリソース。動的プロビジョニングでは、PVCが指定したクラスに応じてプロビジョナーがストレージとPVを用意する。

📌 このページのポイント
StorageClass:払い出し方の設定StorageClass種類・作成方法・削除方針設定を参照PVC容量などを要求プロビジョナー払い出しを担当PVストレージを表すStorageClass自体はディスクではない
動的プロビジョニングの概念図。対応する仕組みを準備し、Podの配置を待ってから払い出す設定もできます。
ひよこ ひよこ
StorageClassは、ディスクそのもの?
ペンギン先生 ペンギン先生
ディスクではなく、ストレージの種類や設定を定義するリソースだよ。レストランのメニューのようなものと考えよう。PVCは「この種類で、この容量が欲しい」という要求で、PVは利用できるストレージを表すリソースなんだ。
ひよこ ひよこ
PVCを作れば、必ずすぐにディスクができるの?
ペンギン先生 ペンギン先生
動的作成に対応するクラスと、プロビジョナーやドライバーなどの準備が必要だよ。StorageClassが設定を示し、プロビジョナーが実際の払い出しを行う。StorageClass自身がプログラムとしてディスクを作るわけではないんだ。
ひよこ ひよこ
設定には、どんなものがあるの?
ペンギン先生 ペンギン先生
provisionerは払い出しを担当する仕組み、parametersはストレージの種類などの設定だよ。例えばAWS EBS CSIドライバーのクラスでは、そのドライバーやディスクの種類を指定する。PVCから参照するクラス名も一致させる必要がある。クラウドを変えるときはドライバー、パラメータ、対応する機能なども確認しよう。
ひよこ ひよこ
WaitForFirstConsumerって何を待つの?
ペンギン先生 ペンギン先生
PVCを使うPodが作られ、配置の条件を考慮できるまで、PVの選択や作成を待つ設定だよ。ストレージを利用できるゾーンなどとPodの配置が食い違うのを避けるために使う。既定のImmediateでは、PVCができた段階でバインドや作成を進めるんだ。
ひよこ ひよこ
PVCを消したら、保存したデータも消える?
ペンギン先生 ペンギン先生
動的作成されたPVは、StorageClassのreclaimPolicyを引き継ぐ。Deleteに対応する場合はPVと外部ストレージを削除し、Retainでは保持して管理者が回収を扱う。既定値はDeleteだよ。Retainはバックアップの代わりではないので、削除方針とデータ保護は別々に設計しよう。
ひよこ ひよこ
StorageClassは動的作成にしか使えないの?
ペンギン先生 ペンギン先生
そうではないよ。事前に作ったPVをクラスで分類する場合もある。例えばローカルボリュームは自動作成に対応しない構成でも、Podの配置を考えたバインドのためにStorageClassを使うんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「StorageClass」って出てきたら「Kubernetesで使うストレージの種類と用意の仕方を決めた設定」と思えばだいたいOK!
📖 おまけ:英語の意味
「StorageClass」 = ストレージのクラス・種別
💬 Kubernetesのリソース種別。利用するストレージの種類や設定を定義するよ。

参考資料

← 用語集にもどる