Ein Volume bereitstellen
Erstellen Sie einen PersistentVolumeClaim (PVC), der die konfigurierte Kubernetes-StorageClass verwendet, um Zugriff auf das PV anzufordern. Anschließend können Sie das PV in einen Pod einbinden.
Überblick
Ein "PersistentVolumeClaim" (PVC) ist eine Anfrage für den Zugriff auf das PersistentVolume im Cluster.
Die PVC kann so konfiguriert werden, dass sie Speicherplatz einer bestimmten Größe oder eines bestimmten Zugriffsmodus anfordert. Mithilfe der zugehörigen StorageClass kann der Clusteradministrator mehr als nur PersistentVolume-Größe und Zugriffsmodus steuern – zum Beispiel Leistung oder Servicelevel.
Nachdem Sie das PVC erstellt haben, können Sie das Volume in einem Pod einbinden.
PVC erstellen
-
Erstellen Sie das PVC.
kubectl create -f pvc.yaml
-
Überprüfen Sie den PVC-Status.
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-storage Bound pv-name 1Gi RWO 5m
-
Mountieren Sie das Volume in einem Pod.
kubectl create -f pv-pod.yaml
Sie können den Fortschritt mit kubectl get pod --watchüberwachen. -
Überprüfen Sie, ob das Volume auf
/my/mount/patheingebunden ist.kubectl exec -it task-pv-pod -- df -h /my/mount/path
-
Sie können den Pod nun löschen. Die Pod-Anwendung existiert dann nicht mehr, aber das Volume bleibt erhalten.
kubectl delete pod pv-pod
Beispielmanifeste
PersistentVolumeClaim-Beispielmanifeste
Diese Beispiele zeigen grundlegende PVC-Konfigurationsoptionen.
Dieses Beispiel zeigt eine einfache PVC mit RWO-Zugriff, die mit einer StorageClass namens basic-csi verknüpft ist.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: basic-csi
Dieses Beispiel zeigt eine einfache PVC für NVMe/TCP mit RWO-Zugriff, die einer StorageClass namens protection-gold zugeordnet ist.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-san-nvme
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 300Mi
storageClassName: protection-gold
Pod-Manifestbeispiele
Diese Beispiele zeigen grundlegende Konfigurationen, um das PVC an ein Pod anzuhängen.
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
Siehe "Kubernetes- und Trident-Objekte" für Details dazu, wie Storage-Klassen mit dem PersistentVolumeClaim interagieren und Parameter zur Steuerung, wie Trident Volumes bereitstellt.