データベースなどのステートフル アプリケーションでは、セッション間でデータが保存されるため、データを格納するためのパーシステント ボリュームが必要です。vSphere IaaS control plane を使用すると、アプリケーションのパーシステント ボリュームを動的にプロビジョニングできます。
vSphere 環境では、パーシステント ボリューム オブジェクトは、データストアにある仮想ディスクによってバッキングされます。データストアはストレージ ポリシーによって表されます。vSphere 管理者が gold などのストレージ ポリシーを作成して、スーパーバイザー 内の名前空間に割り当てると、そのストレージ ポリシーは、vSphere 名前空間 および使用可能な Tanzu Kubernetes Grid クラスタでは、一致する Kubernetes ストレージ クラスとして表示されます。
DevOps エンジニアは、このストレージ クラスをパーシステント ボリュームの要求指定で使用できます。その後、パーシステント ボリュームの要求から得たストレージを使用するアプリケーションをデプロイできます。この例では、アプリケーションのパーシステント ボリュームが動的に作成されています。
前提条件
vSphere 管理者が適切なストレージ ポリシーを作成し、そのポリシーを名前空間に割り当てていることを確認します。
手順
- vSphere Kubernetes 環境内の名前空間にアクセスします。
- ストレージ クラスを使用できることを確認します。
- パーシステント ボリュームの要求を作成します。
- パーシステント ボリュームの要求設定を含む YAML ファイルを作成します。
この例では、ファイルは
gold ストレージ クラスを参照しています。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: gold
resources:
requests:
storage: 3Gi
- Kubernetes クラスタにパーシステント ボリュームの要求を適用します。
kubectl apply -f pvc_name.yaml
このコマンドでは、要求のストレージ要件を満たすバッキング仮想ディスクを持つ Kubernetes パーシステント ボリュームと vSphere ボリュームが動的に作成されます。
- パーシステント ボリュームの要求のステータスを確認します。
kubectl get pvc my-pvc
出力には、ボリュームがパーシステント ボリュームの要求にバインドされていることが示されます。
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
my-pvc Bound my-pvc 2Gi RWO gold 30s
- パーシステント ボリュームをマウントするポッドを作成します。
- パーシステント ボリュームを含む YAML ファイルを作成します。
このファイルには次のパラメータが含まれます。
...
volumes:
- name: my-pvc
persistentVolumeClaim:
claimName: my-pvc
- YAML ファイルからポッドをデプロイします。
kubectl create -f pv_pod_name.yaml
- ポッドが作成されたことを確認します。
NAME READY STATUS RESTARTS AGE
pod_name 1/1 Ready 0 40s
結果
設定したポッドでは、パーシステント ボリュームの要求で指定されているパーシステント ストレージが使用されます。
次のタスク
パーシステント ボリュームの健全性ステータスを監視するには、vSphere 名前空間 または Tanzu Kubernetes Grid クラスタでのボリュームの健全性の監視を参照してください。vSphere Client のパーシステント ボリュームを確認して監視するには、vSphere Client のパーシステント ボリュームの監視を参照してください。