【シーエスアイドライバ】
CSIドライバ とは?
最終更新:
💡 Kubernetesと外部ストレージをつなぐ、共通規格の橋渡し役
Container Storage Interface(CSI)を実装し、Kubernetesなどのコンテナ管理基盤と外部ストレージをつなぐプラグイン。ストレージ固有の操作を標準インターフェースから呼び出せるようにする。利用できる機能はドライバやストレージ、クラスタの設定による。
📌 このページのポイント
- Container Storage Interfaceはコンテナ管理基盤とストレージをつなぐ標準インターフェース
- 対応ドライバをKubernetes本体の外に導入して使う
- StorageClassのprovisionerで動的なボリューム作成を担当するプラグインを指定
- スナップショットや容量拡張はドライバの対応と設定を確認
どんな役割のドライバなの?
Kubernetesから外部ストレージの機能を呼ぶ橋渡し役だよ。Container Storage Interfaceという共通インターフェースを実装し、対象ストレージでボリュームを使うための操作につなぐ。規格が共通でも、各ストレージの機能や設定まで同じになるわけではないんだ。
従来の連携と何が違うの?
Kubernetes本体に組み込まれたストレージ連携も使われていたよ。この規格ではドライバを本体の外で提供・更新できる。既存の組み込み方式から移行する場合にも、対応するドライバの導入と設定が必要なんだ。
入れれば、どんなストレージでも使える?
対象ストレージに対応したドライバが必要だよ。KubernetesのバージョンやOSなどとの互換性、導入手順も確認する。共通規格は接続方法をそろえるもので、未対応の装置まで自動的に扱えるようにするものではないんだ。
スナップショットや容量拡張もできる?
対応していれば使えるよ。スナップショットにはドライバの対応に加え、専用のAPI定義やコントローラなどが必要。容量拡張もドライバが対応し、StorageClassでallowVolumeExpansionを有効にするなどの条件がある。オンライン拡張は使うファイルシステムにもよるんだ。
StorageClassとの関係は?
StorageClassのprovisionerは、ボリュームの動的な作成を担当するプラグインを指定する項目だよ。例えばAWS EBS ドライバならebs.csi.aws.com。PVCでそのStorageClassを要求すると、設定に従って対応するボリュームを用意する流れになるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「シーエスアイドライバ」って出てきたら「Kubernetesと外部ストレージをつなぐ、共通規格の橋渡し役」と思えばだいたいOK!
📖 おまけ:英語の意味
「Container Storage Interface Driver」 = コンテナストレージインターフェースのドライバ
💬 CSIはContainer Storage Interfaceの略で、コンテナ管理基盤とストレージの共通インターフェース。driverはその規格を実装するプラグインだよ。