ボリュームをプロビジョニングする
設定した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 オブジェクト"ください。