このページでは、GKE クラスタに Container Storage Interface(CSI)ストレージ ドライバをインストールする方法について説明します。
CSI は Kubernetes がコンテナ化されたワークロードに任意のストレージ システムを公開できるオープン標準 API です。また、CSI を使用すると、サイズ変更やスナップショットなどの最新のストレージ機能を使用できます。
デフォルトでは、GKE on AWS はebs-csi-driver
を使用して EBS ボリュームをプロビジョニングします。efs-csi-driver
を使用して EFS ボリュームをプロビジョニングすることもできます。別の種類のストレージ ボリュームを使用する場合は、CSI ドライバをインストールできます。
CSI ドライバをインストールしたら、Kubernetes StorageClass を作成する必要があります。StorageClass のプロビジョナーとして CSI ドライバを設定します。その後、StorageClass をデフォルトに設定するか、StorageClass を使用するようにワークロードを構成できます。
始める前に
ベンダーの CSI ドライバをインストールする
CSI ドライバのインストール手順をストレージ ベンダーから提供されます。CSI ドキュメントの CSI ドライバの一覧をご覧ください。
CSI ドライバのインストール手順に沿って操作してください。完了したら、このページの次の手順に進みます。
Google では、サードパーティのドライバに関するサポートを行っていません。また、手順の提供も行いません。サポートについては、ストレージ ベンダーにお問い合わせください。
ドライバのインストールを確認する
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 を作成する。