Provisioning di un volume
Creare un PersistentVolumeClaim (PVC) che utilizzi Kubernetes StorageClass configurato per richiedere l'accesso al PV. È quindi possibile montare il PV su un pod.
Panoramica
Un "PersistentVolumeClaim" (PVC) è una richiesta di accesso a PersistentVolume sul cluster.
Il PVC può essere configurato per richiedere la memorizzazione di una determinata dimensione o modalità di accesso. Utilizzando StorageClass associato, l'amministratore del cluster può controllare più delle dimensioni di PersistentVolume e della modalità di accesso, ad esempio le prestazioni o il livello di servizio.
Dopo aver creato il PVC, è possibile montare il volume in un pod.
Creare il PVC
-
Creare 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
-
Montare il volume in un pod.
kubectl create -f pv-pod.yaml
È possibile monitorare l'avanzamento utilizzando 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
-
A questo punto è possibile eliminare il pod. L'applicazione Pod non esisterà più, ma il volume rimarrà.
kubectl delete pod pv-pod
Manifesti campione
Manifesti di campioni PersistentVolumeClaim
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 una classe StorageClass denominata protection-gold
.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-san-nvme
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 300Mi
storageClassName: protection-gold
Campioni manifesti pod
Questi esempi mostrano le 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
Per ulteriori informazioni sull'interazione delle classi di archiviazione con i PersistentVolumeClaim
parametri e per il controllo del provisioning dei volumi da parte di Trident, fare riferimento "Kubernetes e Trident Objects"a.