ボリュームをプロビジョニングする
設定したKubernetes StorageClassを使用してPVへのアクセスを要求するPersistentVolume(PV)とPersistentVolumeClaim(PVC)を作成します。その後、PVをポッドにマウントできます。
概要
"永続ボリューム_"(PV)は、Kubernetesクラスタ上のクラスタ管理者によってプロビジョニングされる物理ストレージリソースです。 "PersistentVolumeClaim_"(PVC)は、クラスタ上のPersistentVolumeへのアクセス要求です。
PVCは、特定のサイズまたはアクセスモードのストレージを要求するように設定できます。クラスタ管理者は、関連付けられているStorageClassを使用して、PersistentVolumeのサイズとアクセスモード(パフォーマンスやサービスレベルなど)以上を制御できます。
PVとPVCを作成したら、ポッドにボリュームをマウントできます。
マニフェストの例
PersistentVolumeサンプルマニフェスト
このサンプルマニフェストは、StorageClassに関連付けられた10Giの基本PVを示しています basic-csi
。
apiVersion: v1 kind: PersistentVolume metadata: name: pv-storage labels: type: local spec: storageClassName: basic-csi capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/my/host/path"
PersistentVolumeClaimサンプルマニフェスト
次に、基本的なPVC設定オプションの例を示します。
この例は、という名前のStorageClassに関連付けられたRWOアクセスを持つ基本的なPVCを示しています basic-csi
。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: basic-csi
この例は、という名前のStorageClassに関連付けられたNVMe/TCPの基本的なPVCとRWOアクセスを示しています protection-gold
。
--- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-san-nvme spec: accessModes: - ReadWriteOnce resources: requests: storage: 300Mi storageClassName: protection-gold
PODマニフェストのサンプル
次の例は、PVCをポッドに接続するための基本的な設定を示しています。
kind: Pod apiVersion: v1 metadata: name: pv-pod spec: volumes: - name: pv-storage persistentVolumeClaim: claimName: basic containers: - name: pv-container image: nginx ports: - containerPort: 80 name: "http-server" volumeMounts: - mountPath: "/my/mount/path" name: pv-storage
--- apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: nginx name: nginx spec: containers: - image: nginx name: nginx resources: {} volumeMounts: - mountPath: "/usr/share/nginx/html" name: task-pv-storage dnsPolicy: ClusterFirst restartPolicy: Always volumes: - name: task-pv-storage persistentVolumeClaim: claimName: pvc-san-nvme
PVおよびPVCの作成
-
PVを作成
kubectl create -f pv.yaml
-
PVステータスを確認します。
kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv-storage 4Gi RWO Retain Available 7s
-
PVCを作成
kubectl create -f pvc.yaml
-
PVCステータスを確認します。
kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-storage Bound pv-name 2Gi RWO 5m
-
ボリュームをポッドにマウントします。
kubectl create -f pv-pod.yaml
進捗状況はを使用して監視でき `kubectl get pod --watch`ます。 -
ボリュームがにマウントされていることを確認します
/my/mount/path
。kubectl exec -it task-pv-pod -- df -h /my/mount/path
-
ポッドを削除できるようになりました。Podアプリケーションは存在しなくなりますが、ボリュームは残ります。
kubectl delete pod task-pv-pod
ストレージクラスとパラメータおよびパラメータとの連携によるAstra Tridentによるボリュームのプロビジョニング方法の詳細については PersistentVolumeClaim
、を参照して"Kubernetes オブジェクトと Trident オブジェクト"ください。