ストレージの概要

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

コントロール プレーンのストレージ

クラスタを作成すると、GKE on Azure でコントロール プレーンと etcd ボリューム用のプレミアム SSD LRS ディスクがプロビジョニングされます。

GKE on Azure ワークロードで永続ストレージを使用する

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

StorageClass

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

Azure ストレージ アカウント

GKE on Azure は、クラスタの作成時に Azure ストレージ アカウントを自動的に作成します。特定のストレージ アカウントを使用する場合は、カスタム ストレージ クラスを作成します

クラスタ ストレージを構成する

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

Azure Disk Storage(AzureDisk)

GKE on Azure は、azuredisk-csi-driver を使用して Azure Disk ボリュームを管理します。

CSI ドライバのバージョンは、GKE on Azure の Kubernetes バージョンに関連付けられています。クラスタのバージョンをアップグレードすると、GKE on Azure がドライバのバージョンを自動的に更新します。ドライバは通常、GKE on Azure がリリースされた時点で入手可能な最新バージョンになります。従来の Kubernetes kubernetes.io/azure-disk ボリューム タイプはサポートされていません。

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

  • standard-rwo(デフォルト): LRS で標準 SSD Azure ディスクをプロビジョニングするために使用されます。
  • premium-rwo: LRS を使用してプレミアム SSD Azure ディスクをプロビジョニングするために使用されます。

Azure Disk ボリュームは、Kubernetes ReadWriteOnce アクセスモードをサポートしています。

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

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

ボリュームのクローン作成

CSI ボリュームのクローン作成を使用すると、既存の Azure Disk ボリュームのクローンを作成できます。詳細については、ボリューム クローンの作成の例をご覧ください。

ボリュームのサイズ変更

ボリュームのサイズ変更で、アタッチされていない Azure ディスクのボリューム サイズを変更できます。詳細については、ボリューム サイズ変更の例をご覧ください。ボリュームがアタッチされ、マウントされている間はサイズ変更ができません。

Azure 共有ディスク

共有の raw ブロック ディスクへの書き込みを調整するように設計されたワークロードでは、GKE on Azure が Azure 共有ディスクをサポートします。詳細については、Azure ディスク CSI ドキュメントの共有ディスク(マルチノード ReadWrite)をご覧ください。

Azure File Storage(AzureFile)

GKE on Azure は、azurefile-csi-driver を使用して Azure Files ボリュームを管理します。

CSI ドライバは、GKE on Azure の Kubernetes バージョンに関連付けられています。クラスタ バージョンをアップグレードすると、新しいドライバ バージョンが自動的に適用されます。ドライバは通常、GKE on Azure がリリースされた時点で入手可能な最新バージョンになります。従来の Kubernetes kubernetes.io/azure-file ボリューム タイプはサポートされていません。

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

  • standard-rwx: 標準 SSD Azure ファイル共有を LRS でプロビジョニングするために使用されます。
  • premium-rwx: プレミアム SSD の Azure ファイル共有を LRS でプロビジョニングするために使用されます。

Azure ファイル ボリュームは、Kubernetes ReadWriteMany アクセスモードを使用します。

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

VolumeSnapshot リソースを使用して、Azure File ボリュームのスナップショットを作成できます。詳細については、Azure File のスナップショット機能のドキュメントをご覧ください。スナップショットを復元するには、Azure ポータルを使用します。詳細については、Azure Files の共有スナップショットの概要をご覧ください。

ボリュームのサイズ変更

ボリュームのサイズ変更によって Azure ファイル ボリュームのサイズを変更できます。詳細については、ボリューム サイズ変更の例をご覧ください。

追加のストレージ ドライバ

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

CSI ドライバ

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

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

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

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

GKE on Azure は、Azure Blob ストレージを直接管理しません。blob-csi-driver CSI ドライバを手動でインストールすることはできますが、Google ではサポートを行っていません。

Kubernetes in-tree Volume プラグイン

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

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

次のステップ