このトピックでは、クラスタに Container Storage Interface(CSI)ストレージ ドライバをインストールする方法について説明します。
概要
デフォルトでは、GKE on AWS はデフォルトの StorageClass を使用して AWS EBS ボリュームをプロビジョニングします。ワークロードで別の種類のストレージ ボリュームを使用する必要がある場合は、互換性のある CSI ドライバをインストールしてアクセスできるようにします。
Container Storage Interface
(CSI)は、準拠するストレージ システムに Kubernetes ワークロードがアクセスできるようにするオープン標準 API です。CSI を使用すると、サイズ変更やスナップショットなどの最新のストレージ機能を使用できます。
CSI ドライバをインストールしたら、Kubernetes StorageClass を作成する必要があります。StorageClass のプロビジョナーとして CSI ドライバを設定します。その後、StorageClass をデフォルトに設定するか、StorageClass を使用するようにワークロードを構成できます。カスタム StorageClass で StatefulSet を作成する方法については、ワークロードでの StorageClasses の使用をご覧ください。
ベンダーの CSI ドライバをインストールする
CSI ドライバのインストール手順をストレージ ベンダーから提供されます。CSI ドキュメントの CSI ドライバの一覧をご覧ください。
CSI ドライバのインストール手順に沿って操作してください。完了したら、このページの次の手順に進みます。
ドライバのインストールを確認する
CSI ドライバをインストールしたら、次のコマンドを実行してインストールを検証します。
kubectl get csinodes \
-o jsonpath='{range .items[*]} {.metadata.name}{": "} {range .spec.drivers[*]} {.name}{"\n"} {end}{end}'
CSI ドライバの使用方法
CSI ドライバを使用する手順は次のとおりです。
provisioner
フィールドで、ドライバを参照するカスタム StorageClass を作成します。次のいずれか方法でストレージをプロビジョニングできます。
- StatefulSet の
volumeClaimTemplates
仕様で StorageClass を参照する。 - クラスタのデフォルトの StorageClass として設定する。
- StatefulSet の
CSI ドライバでサポートされる StorageClass の考慮事項
StorageClass を作成するときは、次の点を考慮します。
プロビジョナー名など、StorageClass に指定するドライバ固有のパラメータについては、CSI ドライバのドキュメントをご覧ください。
StorageClass には、特定のドライバやその背後にあるアプライアンスの名前ではなく、プロパティの名前(
fast
、highly-replicated
など)を指定する必要があります。StorageClass にプロパティの名前を指定すると、異なるクラスタや環境で同じ名前の StorageClass を作成できます。次に、同じ StorageClass を使用するようにワークロードを構成します。
次のステップ
- CSI ドライバを参照する StorageClass を作成する。