スーパーバイザー のコンポーネント、アプリケーション、およびワークロードは、データを保存して取得する必要があります。アプリケーションやオブジェクトによって、一時的な高速ストレージを使用する場合と、永続的なストレージが必要な場合があります。
ストレージ ポリシーについて
スーパーバイザー は、ストレージ ポリシーを使用して、vSphere 環境内で使用可能なストレージと統合します。このポリシーは、データストアを表し、制御プレーン仮想マシン、vSphere ポッド の短期ディスク、コンテナ イメージなどのコンポーネントやオブジェクトのストレージ配置を管理します。パーシステント ボリュームおよび仮想マシン コンテンツ ライブラリのストレージ配置にもポリシーが必要になることがあります。Tanzu Kubernetes Grid クラスタを使用する場合は、ストレージ ポリシーによって、Tanzu Kubernetes Grid クラスタ ノードのデプロイ方法も決定されます。
ストレージ ポリシーは、VMFS、NFS、vSAN(vSAN ESA を含む)、vVol など、環境内のすべての共有データストアをサポートします。
vSphere ストレージ環境と DevOps のニーズに応じて、さまざまなストレージ クラスのために複数のストレージ ポリシーを作成することができます。スーパーバイザー を有効にして名前空間を設定すると、多様なオブジェクト、コンポーネント、ワークロードで使用されるさまざまなストレージ ポリシーを割り当てることができます。
たとえば、vSphere ポッド に 3 つのタイプの仮想ディスクがマウントされていて、vSphere ストレージ環境にブロンズ、シルバー、ゴールドの 3 つのクラスのデータストアがある場合、すべてのデータストアに対してストレージ ポリシーを作成できます。その後、短期仮想ディスクとコンテナ イメージ仮想ディスクにブロンズ データストアを使用し、パーシステント ボリューム仮想ディスクにシルバーおよびゴールド データストアを使用することができます。
ストレージ ポリシーの作成については、『vSphere IaaS 制御プレーンのインストールと構成』ドキュメントの「ストレージ ポリシーの作成」を参照してください。
ストレージ ポリシーの一般的な情報については、『vSphere のストレージ』ドキュメントのストレージ ポリシー ベースの管理の章を参照してください。
スーパーバイザー のストレージ ポリシー
スーパーバイザー レベルでは、スーパーバイザー 制御プレーン仮想マシンのストレージ ポリシーを構成します。また、デプロイで vSphere ポッド がサポートされている場合は、ストレージ ポリシーを割り当てて、短期ディスクとコンテナ イメージのデータストアの場所を指定します。スーパーバイザー を有効にする場合のストレージの設定については、『vSphere IaaS 制御プレーンのインストールと構成』ドキュメントを参照してください。ストレージ設定を変更するには、スーパーバイザーでのストレージ設定の変更を参照してください。
- 制御プレーン ストレージ ポリシー
- このポリシーにより、制御プレーン仮想マシンが、ポリシーによって表されるデータストアに配置されます。
- 短期仮想ディスク
-
vSphere ポッド では、その動作中にログ、
emptyDir ボリューム、
ConfigMaps などの Kubernetes オブジェクトを保存するために、短期ストレージが必要です。この短期(一時)ストレージは、ポッドが存続する限り保持されます。短期データはコンテナの再起動後も維持されますが、ポッドのライフタイムが終了すると、短期仮想ディスクは破棄されます。
各ポッドには 1 つの短期仮想ディスクがあります。vSphere 管理者は、スーパーバイザー のストレージを構成するときに、ストレージ ポリシーを使用してすべての短期仮想ディスクのデータストアの場所を定義します。
- コンテナ イメージ仮想ディスク
-
vSphere ポッド 内のコンテナでは、実行するソフトウェアを含むイメージを使用します。ポッドは、コンテナで使用されるイメージをイメージ仮想ディスクとしてマウントします。ポッドのライフサイクルが完了すると、イメージ仮想ディスクはポッドから接続を解除されます。
ESXi コンポーネントのイメージ サービスは、イメージ レジストリからコンテナ イメージをプルし、そのイメージをポッド内で実行される仮想ディスクに変換します。
ESXi は、ポッドで実行されているコンテナ用にダウンロードされたイメージをキャッシュできます。これ以降、同じイメージを使用するポッドは、外部コンテナ レジストリではなくローカル キャッシュからプルします。
ワークロードのパーシステント ストレージ
DevOps が名前空間で実行する特定の Kubernetes ワークロードでデータを永続的に保存するには、パーシステント ストレージが必要です。
パーシステント ストレージは、vSphere ポッド、Tanzu Kubernetes Grid クラスタ、仮想マシン、および名前空間で実行するその他のワークロードで使用できます。DevOps チームがパーシステント ストレージを使用できるようにするために、vSphere 管理者は、さまざまなストレージ要件とサービス クラスを記述するストレージ ポリシーを作成します。続いて、管理者は名前空間レベルでストレージ ポリシーを割り当てて、ストレージ制限を構成します。
vSphere IaaS control plane とパーシステント ストレージがどのように連携するかを理解するには、ストレージ クラス、パーシステント ボリューム、パーシステント ボリュームの要求など、Kubernetes の重要な概念を把握しておく必要があります。詳細については、Kubernetes のドキュメント (https://kubernetes.io/docs/home/) を参照してください。
Tanzu Kubernetes Grid クラスタのパーシステント ストレージの詳細については、Tanzu Kubernetes Grid クラスタのストレージを参照してください。
パーシステント ストレージの使用方法については、『vSphere IaaS 制御プレーンのサービスとワークロード』ドキュメントのワークロードでのパーシステント ストレージの使用を参照してください。
DevOps チームがパーシステント ストレージのニーズに対して vSAN Direct を使用するサードパーティ サービスをデプロイする予定の場合は、『vSphere IaaS 制御プレーンのサービスとワークロード』ドキュメントのvSphere with Taznu でのステートフル サービスの有効化を参照してください。
スーパーバイザー と vSphere ストレージの統合方法
スーパーバイザー はいくつかのコンポーネントを使用して、vSphere ストレージと統合します。
- vCenter Server 上のクラウド ネイティブ ストレージ (CNS)
- CNS コンポーネントは、 vCenter Server に配置されます。これは、パーシステント ボリュームのプロビジョニングとライフサイクルの操作を実装する vCenter Server 管理の拡張機能です。
- 最初のクラス ディスク (FCD)
-
強化された仮想ディスクとも呼ばれます。これらのディスクはデータストアに配置され、ReadWriteOnce パーシステント ボリュームをバッキングします。
FCD を使用する場合は、次の点に注意してください。
- FCD は NFS 4.x プロトコルをサポートしません。代わりに、NFS 3 を使用してください。
- vCenter Server は、同じ FCD での操作をシリアル化しません。したがって、アプリケーションは同じ FCD で複数の操作を同時に実行できません。複数のスレッドからクローン作成、再配置、削除、取得などの操作を同時に実行すると、予期しない結果になります。問題を回避するには、アプリケーションが同じ FCD で操作を実行するときに、順番に実行する必要があります。
- FCD は管理対象オブジェクトではなく、単一 FCD への複数の書き込みから保護するグローバル ロックをサポートしていません。したがって、複数の vCenter Server インスタンスで同じ FCD を管理することはできません。FCD で複数の vCenter Server インスタンスを使用する必要がある場合は、次の方法を使用できます。
- 複数の vCenter Server インスタンスで複数のデータストアを管理できます。
- 複数の vCenter Server インスタンスが同じ FCD で動作することはありません。
- ストレージ ポリシー ベースの管理
- ストレージ ポリシー ベースの管理は、ストレージ ポリシーに記述されているストレージ要件に従って、パーシステント ボリュームとそのバッキング仮想ディスクのプロビジョニングをサポートする、 vCenter Server サービスです。プロビジョニング後、サービスは、ストレージ ポリシー特性に対するボリュームのコンプライアンスを監視します。ストレージ ポリシーの管理の詳細については、『 vSphere のストレージ』ドキュメントの ストレージ ポリシー ベースの管理の章を参照してください。
- vSphere CNS-CSI
- vSphere CNS-CSI コンポーネントは、コンテナ ストレージ インターフェイス (CSI) 仕様に準拠しています。これは、Kubernetes のようなコンテナ オーケストレータによってパーシステント ストレージのプロビジョニングに使用されるインターフェイスを提供するために設計された業界標準です。CNS-CSI ドライバは スーパーバイザー で実行され、vSphere ストレージをある名前空間の Kubernetes 環境に接続します。vSphere CNS-CSI は、その名前空間から発生するすべてのストレージ プロビジョニング要求について、CNS コンポーネントと直接通信します。
vSphere CNS-CSI でサポートされる機能
スーパーバイザー で実行される vSphere CNS-CSI コンポーネントは、複数の vSphere および Kubernetes ストレージ機能をサポートします。ただし、特定の制限が適用されます。
サポートされている機能 | vSphere CNS-CSI と スーパーバイザー の併用 |
---|---|
vSphere Client での CNS のサポート | はい |
vSphere Client でのオブジェクト健全性の向上 | はい(vSAN のみ) |
動的ブロック パーシステント ボリューム(ReadWriteOnce アクセス モード) | はい |
動的ファイル パーシステント ボリューム(ReadWriteMany アクセス モード) | いいえ |
vSphere データストア | VMFS、NFS、vSAN(vSAN ESA を含む)、vVols |
静的パーシステント ボリューム | はい |
暗号化 | いいえ |
オフライン ボリュームの拡張 | はい |
オンライン ボリュームの拡張 | はい |
ボリューム トポロジとゾーン | はい。ボリュームは、Tanzu Kubernetes Grid クラスタでのみ使用できます。 |
Kubernetes の複数の制御プレーン インスタンス | はい |
WaitForFirstConsumer | いいえ |
VolumeHealth | はい |
パーシステント ボリュームでの Storage vMotion | いいえ |
vSphere Zone を使用したパーシステント ストレージと スーパーバイザー
3 ゾーン スーパーバイザー は、1 つのゾーン内のすべてのホスト間でデータストアが共有されるゾーン ストレージをサポートしています。
- 3 つすべてのゾーン内のストレージが同じタイプである必要はありません。ただし、3 つすべてのクラスタで同じタイプのストレージを使用すると、一貫したパフォーマンスが得られます。
- 3 ゾーン スーパーバイザー の名前空間には、各クラスタの共有ストレージに準拠したストレージ ポリシーを使用します。ストレージ ポリシーはトポロジ対応である必要があります。
- 名前空間に割り当てた後は、ストレージ ポリシーからトポロジの制約を削除しないでください。
- ゾーン データストアを他のゾーンにマウントしないでください。
- 3 ゾーン スーパーバイザー では、次のアイテムはサポートされません。
- ゾーン間ボリューム
- vSAN ファイル ボリューム (ReadWriteMany ボリューム)
- ボリューム登録 API を使用した静的ボリュームのプロビジョニング
- vSAN データ パーシステンス プラットフォームを使用するワークロード
- vSphere ポッド
- vSAN ストレッチ クラスタ
- vGPU とインスタンス ストレージを使用する仮想マシン
詳細については、『vSphere IaaS 制御プレーンのサービスとワークロード』ドキュメントの3 ゾーン スーパーバイザーでのパーシステント ストレージの使用を参照してください。