ストレージ

このページでは、Anthos clusters on VMware(GKE On-Prem)ストレージのコンセプトについて説明します。

概要

Anthos clusters on VMware は、VMware vSphere ストレージ、Kubernetes in-tree Volume プラグイン(または「ドライバ」)、Container Storage Interface(CSI)ドライバを介して、外部ブロック ストレージまたはファイル ストレージ システムと統合されます。

Anthos clusters on VMware は、デフォルトの Kubernetes StorageClass を使用して、vSphere データストア上のステートフル ワークロードのストレージをプロビジョニングします。StorageClass を使用して、異なるストレージ ボリュームをプロビジョニングすることもできます。

vSphere ストレージ

デフォルトでは、Anthos clusters on VMware は vSphere ストレージを使用します。管理クラスタでは、etcd データ用に事前にプロビジョニングされた vSphere データストアが必要です。

ユーザー クラスタを作成すると、Anthos clusters on VMware は vSphere Kubernetes Volume プラグインを使用して、vSphere データストアに新しい仮想マシンディスク(VMDK)を動的にプロビジョニングします(1.2 以前では、ユーザー クラスタは管理クラスタと同じデータストアを使用していました)。

管理クラスタとユーザー クラスタで使用される vSphere データストアは、外部ストレージ配列などのブロック デバイス上の、NFS、vSAN、VMFS でサポート可能です。マルチホスト環境では、各ブロック デバイスを環境内のすべてのホストに接続し、データストアは Mount Datastore on Additional Hosts のオプション経由の各ホスト上で構成される必要があります。

デフォルトのストレージ

Anthos clusters on VMware には、デフォルトの Kubernetes StorageClass が含まれています。これは、Kubernetes によるストレージのプロビジョニング方法を決定します。Kubernetes でストレージ ボリュームがプロビジョニングされると、Kubernetes の PersistentVolume で表されます。

ユーザー クラスタのデフォルトの StorageClass は、StorageClass の構成の datastore フィールドで設定された、vSphere データストアを参照します。デフォルトでは、ユーザー クラスタ用にプロビジョニングされた Kubernetes PersistentVolumes は、そのデータストアの VMDK です。これは管理クラスタで使用されるデータストアと同じである必要はありません。

Anthos clusters on VMware では、Kubernetes StatefulSets(通常、永続ストレージを必要とするステートフル ワークロード)は、デフォルトで vSphere ストレージを参照する StorageClasses でサポートされる PersistentVolumeClaims を使用します。

Container Storage Interface

Container Storage Interface(CSI) は Kubernetes がコンテナ化されたワークロードに任意のストレージ システムを公開できるオープン標準 API です。CSI 互換のボリューム ドライバを Anthos clusters on VMware にデプロイすると、vSphere ストレージを経由せずに、互換性のあるストレージ デバイスにワークロードを直接接続できます。

Anthos clusters on VMware は CSI v1.0 をサポートします。クラスタで CSI を使用するには、ストレージ ベンダーにより提供される CSI ドライバをデプロイする必要があります。続いて、ワークロードを構成してドライバの StorageClass を使用するか、デフォルトの StorageClass として設定することが可能です。

Google は多くのストレージ ベンダーと提携して、Anthos clusters on VMware を備えるストレージ システムを認定しています。認定ストレージ パートナーの一覧をご覧ください。

vSphere CSI ドライバ

Anthos clusters on VMware は、デフォルトでは、VMware の in-tree volume プラグインである vSphere Cloud Provider(VCP)を利用します。これにより、vSAN などの VMware データストアのサポートが自動的に有効になります。vSphere CSI ドライバは、Anthos clusters on VMware に自動的にデプロイされ、Anthos clusters on VMware バージョン 1.5 から始まるプレビュー機能として使用できます。

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

永続ストレージのスナップショットは、VolumeSnapshot リソースと VolumeSnapshotClass リソースを使用して作成できます。CSI ボリュームでこの機能を使用するには、CSI ドライバがボリューム スナップショットをサポートして、external-snapshotter サイドカー コンテナが CSI ドライバのデプロイメントに含まれている必要があります。

ボリューム スナップショットの詳細については、ボリューム スナップショットの使用をご覧ください。

クラスタを作成すると、CSI スナップショット コントローラが自動的にデプロイされます。

ボリュームのクリーンアップ

ユーザー クラスタを削除すると、VMware のツリー内ボリューム プラグインによってプロビジョニングされたボリュームが削除されないことがあります。ただし、ユーザー クラスタを削除しても、vSphere CSI ドライバによってプロビジョニングされたボリュームは削除されません。クラスタを削除する前に、すべてのボリューム、PVC、StatefulSet が削除されていることを確認する必要があります。

Kubernetes in-tree Volume プラグイン

Kubernetes には複数の in-tree Volume プラグインが用意されています。これらのいずれかを使用して、ステートフル ワークロードにブロック ストレージまたはファイル ストレージを提供するオプションがあります。In-tree プラグインを使用すると、vSphere ストレージを経由せずに、ワークロードをストレージに直接接続できます。

iSCSI、FC、NFS ストレージ デバイスでサポートされるデータストア内の Volume は自動的に動的プロビジョニングされますが、in-tree プラグインの多くは動的プロビジョニングをサポートしません。これらは PersistentVolume を手動で作成する必要があります。

次の表に、いくつかの in-tree Volume プラグインを示します。

in-tree Volume プラグイン説明サポートされるアクセスモード動的プロビジョニング
Fibre Channel汎用ストレージ プラグイン単一 Pod の読み取り / 書き込みいいえ
iSCSI汎用ストレージ プラグイン単一 Pod の読み取り / 書き込みいいえ
NFS汎用ストレージ プラグイン複数の Pod の読み取り / 書き込み×

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

vSphere データストア以外のストレージ ボリュームをプロビジョニングする場合は、別のストレージ ドライバを使用するクラスタに新しい StorageClass を作成できます。次に、StorageClass をクラスタのデフォルトとして設定するか、ワークロードを構成して StorageClass(StatefulSet など)を使用します。

トラブルシューティング

ストレージのトラブル シューティングをご覧ください。

関連情報