ストレージ

Kubernetes オブジェクトを使用して、GKE on AWS で実行されるワークロードに永続ストレージを作成します。

GKE on AWS ワークロードでの永続ストレージの使用

GKE on AWS では、Kubernetes PersistentVolume(PV)、PersistentVolumeClaim(PVC)、StorageClass リソースを使用して、ワークロードに永続ファイルとブロック ストレージを提供します。ユーザー クラスタ バージョン 1.17 以降では、VolumeSnapshot リソースと VolumeSnapshotClass リソースを使用して永続ストレージのスナップショットを作成できます。スナップショットは AWS アカウントに保存されます。

StorageClass

ユーザー クラスタにはデフォルトの Kubernetes StorageClass があり、これにより、AWS Elastic Block Storage(EBS)ボリュームのワークロードにステートフル ストレージが動的にプロビジョニングされます。別の StorageClass を使用して、他の種類のボリュームをプロビジョニングすることもできます。これらのオプションについては、次のセクションで説明します。

VolumeSnapshotClass

ユーザー クラスタにはデフォルトの Kubernetes VolumeSnapshotClass があり、これにより、AWS Elastic Block Storage(EBS)ボリュームにステートフル ストレージのスナップショットが作成されます。

クラスタ ストレージの構成

デフォルト以外の StorageClass を使用してストレージ ボリュームをプロビジョニングする場合は、異なるパラメータまたは別のストレージ ドライバを使用するクラスタに新しい StorageClass を作成できます。その後、作成した StorageClass をクラスタのデフォルトとして設定するか、StorageClass を使用するようにワークロードを構成します。たとえば、StatefulSet を使用して、特定の StorageClass 名を設定できます。

ボリューム スナップショットの使用

Kubernetes バージョン 1.17 以降では、VolumeSnapshot リソースを使用してストレージ ボリュームのスナップショットを作成できます。その後、作成したスナップショットから新しい永続ボリュームをプロビジョニングできます。

Elastic Block Storage(EBS)

GKE on AWS は、aws-ebs-csi-driver を使用して AWS EBS ボリュームを管理します。

EBS CSI ドライバのバージョンは、GKE on AWS Kubernetes バージョンに関連付けられています。ユーザー クラスタ バージョンをアップグレードすると、新しいドライバ バージョンが自動的に適用されます。ドライバは通常、GKE on AWS がリリースされた時点で入手可能な最新バージョンになります。

GKE on AWS にプリインストールされているドライバによって、デフォルトで次の StorageClass が提供されます。

  • standard-rwo(デフォルト): EBS gp2 Volume のプロビジョニングに使用されます。
  • premium-rwo: EBS io1 Volume のプロビジョニングに使用されます。

EBS Volume は、Kubernetes ReadWriteOnce アクセスモードをサポートしています。

既存の EBS Volume

GKE on AWS ワークロードに既存の EBS Volume をプロビジョニングできます。GKE on AWS で EBS Volume を使用する方法については、既存の EBS Volume のインポートをご覧ください。

Elastic File System(EFS)

GKE on AWS 1.6 以降では、既存の AWS EFS ファイル システムとアクセス ポイントのマウントがサポートされています。詳細については、EFS の使用をご覧ください。

追加のストレージ オプション

GKE on AWS では、サードパーティの Container Storage Interface(CSI)ドライバ(推奨)または Kubernetes in-tree Volume プラグインを介して、他のサードパーティ ストレージ システムを使用できます。

CSI ドライバ

Container Storage Interface(CSI)は、Kubernetes がコンテナ化されたワークロードに任意のストレージ システムを接続できるようにするオープン標準 API です。CSI ドライバの詳しいリストについては、Kubernetes CSI デベロッパー向けドキュメントをご覧ください。GKE on AWS は CSI v1.x をサポートしています。

クラスタで CSI ドライバを使用するには、ストレージ ベンダーが提供する CSI ドライバをインストールする必要があります。その後、ドライバの StorageClass を使用するようにワークロードを構成するか、デフォルトの StorageClass として設定します。

AWS 固有のストレージ ドライバ

GKE on AWS では、次のボリューム ドライバを使用できます。

FSx for Lustre(FSX)

GKE on AWS は、FSx Volume を直接管理しません。aws-fsx-csi-driver は手動でインストールできますが、Google ではサポートを行っていません。

Kubernetes in-tree Volume プラグイン

Kubernetes には in-tree(組み込み)Volume プラグインが付属しています。サポートされている in-tree ドライバには次のものがあります。

  • configMap
  • emptyDir
  • hostPath
  • nfs
  • projected
  • secrets

次のステップ