Effettua il provisioning di un volume
Crea un PersistentVolumeClaim (PVC) che utilizza il StorageClass Kubernetes configurato per richiedere l'accesso al PV. Puoi quindi montare il PV su un pod.
Panoramica
Un "PersistentVolumeClaim" (PVC) è una richiesta di accesso al PersistentVolume sul cluster.
Il PVC può essere configurato per richiedere storage di una certa dimensione o modalità di accesso. Utilizzando il StorageClass associato, l'amministratore del cluster può controllare più della sola dimensione e modalità di accesso della PersistentVolume, come ad esempio le prestazioni o il livello di servizio.
Dopo aver creato il PVC puoi montare il volume in un pod.
Crea il PVC
-
Crea il PVC.
kubectl create -f pvc.yaml
-
Verificare lo stato del PVC.
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-storage Bound pv-name 1Gi RWO 5m
-
Monta il volume in un pod.
kubectl create -f pv-pod.yaml
Puoi monitorare l'avanzamento usando kubectl get pod --watch. -
Verificare che il volume sia montato su
/my/mount/path.kubectl exec -it task-pv-pod -- df -h /my/mount/path
-
Ora puoi eliminare il Pod. L'applicazione Pod non esisterà più, ma il volume rimarrà.
kubectl delete pod pv-pod
Esempi di manifest
PersistentVolumeClaim manifesti di esempio
Questi esempi mostrano le opzioni di configurazione di base del PVC.
Questo esempio mostra un PVC di base con accesso RWO associato a un StorageClass denominato basic-csi.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: basic-csi
Questo esempio mostra un PVC di base per NVMe/TCP con accesso RWO associato a un StorageClass denominato protection-gold.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-san-nvme
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 300Mi
storageClassName: protection-gold
Esempi di manifest di pod
Questi esempi mostrano configurazioni di base per collegare il PVC a un pod.
kind: Pod
apiVersion: v1
metadata:
name: pv-pod
spec:
volumes:
- name: storage
persistentVolumeClaim:
claimName: pvc-storage
containers:
- name: pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/my/mount/path"
name: storage
apiVersion: v1
kind: Pod
metadata:
name: pod-nginx
spec:
volumes:
- name: basic-pvc
persistentVolumeClaim:
claimName: pvc-san-nvme
containers:
- name: task-pv-container
image: nginx
volumeMounts:
- mountPath: "/my/mount/path"
name: basic-pvc
Fate riferimento a "Oggetti Kubernetes e Trident" per i dettagli su come le classi di storage interagiscono con PersistentVolumeClaim e sui parametri per controllare come Trident effettua il provisioning dei volumi.