vSphere クラウド ネイティブ ストレージ 環境について重要ないくつかの概念を理解しておきます。
- Kubernetes クラスタ
- Kubernetes 制御プレーンとワーカーサービスが実行されている仮想マシンのクラスタ。Kubernetes クラスタの上部で、コンテナ化されたアプリケーションを展開します。アプリケーションには、ステートフルまたはステートレスのいずれかの状態があります。
- ポッド
- ポッドは、ストレージやネットワークなどのリソースを共有する 1 つ以上のコンテナのグループです。ポッド内のコンテナは、グループとして開始、停止、および複製されます。
- コンテナ Orchestrator
- ホストのクラスタ間でコンテナ化されたアプリケーションを展開、拡張、および管理するための Kubernetes などのオープンソース プラットフォーム。プラットフォームは、コンテナを中心としたインフラストラクチャを提供します。
- ステートフル アプリケーション
- コンテナ アプリケーションがステートレスからステートフルに発展すると、永続的なストレージが必要になります。セッション間でデータを保存しないステートレス アプリケーションとは異なり、ステートフル アプリケーションはデータを永続的なストレージに保存します。保持されたデータは、アプリケーションの状態と呼ばれます。後でデータを取得し、次のセッションで使用することができます。ほとんどのアプリケーションはステートフルです。データベースは、ステートフル アプリケーションの一例です。
- PersistentVolume
- ステートフル アプリケーションは、PersistentVolumes を使用してデータを保存します。PersistentVolume は、その状態とデータを保持できる Kubernetes ボリュームです。ポッドからは独立しており、ポッドが削除または再構成されても引き続き存在できます。vSphere 環境では、PersistentVolume オブジェクトはバッキング ストレージとして仮想ディスク (VMDK) を使用します。
- StorageClass
-
Kubernetes は、StorageClass を使用して、ストレージのさまざまな階層を定義し、PersistentVolume をバッキングするストレージの各種要件を記述します。vSphere 環境では、ストレージ クラスをストレージ ポリシーにリンクできます。vSphere 管理者は、さまざまなストレージ要件を記述したストレージ ポリシーを作成します。仮想マシン ストレージ ポリシーは、動的ボリューム プロビジョニングの StorageClass 定義の一部として使用されます。
次のサンプルの YAML ファイルは、以前に vSphere Client を使用して作成した Gold ストレージ ポリシーを示しています。作成されたパーシステント ボリューム VMDK は、Gold ストレージ ポリシー要件を満たす、互換性のあるデータストアに配置されます。
- PersistentVolumeClaim
- 通常、アプリケーションまたはポッドは PersistentVolumeClaim を介して永続的なストレージを要求できます。PersistentVolumeClaim では、ストレージのクラス、アクセス モード(ReadWriteOnce または ReadWriteMany)、PersistentVolume のその他のパラメータを指定します。この要求により、対応する PersistentVolume オブジェクトと、vSphere 環境で基盤となる仮想ディスク が動的にプロビジョニングされます。
- StatefulSet
- StatefulSet は、ステートフル アプリケーションの展開とスケーリングを管理します。StatefulSet は、安定した ID または安定した永続的なストレージを必要とするアプリケーションで役立ちます。StatefulSet を構成して、PersistentVolumeClaim オブジェクトを自動的に生成する volumeClaimTemplates エントリを含めることができます。