Aprovisione un volumen
Cree un volumen persistente (VP) y una reclamación de volumen persistente (RVP) que utilice el tipo de almacenamiento de Kubernetes configurado para solicitar acceso al VP. A continuación, puede montar el VP en un pod.
Descripción general
-
"Volumen persistente" (PV) es un recurso de almacenamiento físico aprovisionado por el administrador del clúster en un clúster de Kubernetes. La "Claim de volumen persistente" (RVP) es una solicitud para acceder al volumen persistente en el clúster.
La RVP se puede configurar para solicitar almacenamiento de un determinado tamaño o modo de acceso. Mediante el StorageClass asociado, el administrador del clúster puede controlar mucho más que el tamaño de los volúmenes persistentes y el modo de acceso, como el rendimiento o el nivel de servicio.
Después de crear el VP y la RVP, puede montar el volumen en un pod.
Manifiestos de muestra
Manifiesto de muestra de volumen persistente
Este manifiesto de ejemplo muestra un PV básico de 10Gi que está asociado con StorageClass 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"
Manifiestos de muestra de PersistentVolumeClaim
Estos ejemplos muestran opciones básicas de configuración de PVC.
En este ejemplo se muestra una RVP básica con acceso RWO que está asociada con una clase de almacenamiento denominada basic-csi
.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: basic-csi
En este ejemplo, se muestra una PVC básica para NVMe/TCP con acceso RWO asociado con una clase de almacenamiento denominada protection-gold
.
--- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-san-nvme spec: accessModes: - ReadWriteOnce resources: requests: storage: 300Mi storageClassName: protection-gold
Muestras de manifiesto de POD
Estos ejemplos muestran configuraciones básicas para conectar la RVP a un pod.
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
Cree el VP y la RVP
-
Cree el VP.
kubectl create -f pv.yaml
-
Compruebe el estado de PV.
kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv-storage 4Gi RWO Retain Available 7s
-
Cree la RVP.
kubectl create -f pvc.yaml
-
Verifique el estado de la RVP.
kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-storage Bound pv-name 2Gi RWO 5m
-
Monte el volumen en un pod.
kubectl create -f pv-pod.yaml
Puede supervisar el progreso con kubectl get pod --watch
. -
Compruebe que el volumen está montado en
/my/mount/path
.kubectl exec -it task-pv-pod -- df -h /my/mount/path
-
Ahora puede eliminar el Pod. La aplicación Pod ya no existirá, pero el volumen permanecerá.
kubectl delete pod task-pv-pod
Consulte "Objetos de Kubernetes y Trident" si desea obtener información detallada sobre cómo interactúan las clases de almacenamiento con el PersistentVolumeClaim
Y parámetros para controlar de qué forma Astra Trident aprovisiona volúmenes.