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
Un "Volumen persistente" (VP) es un recurso de almacenamiento físico aprovisionado por el administrador del clúster en un clúster de Kubernetes. "Claim de volumen persistente"La (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.
Este ejemplo muestra una PVC básica con acceso RWO que está asociada con una clase de almacenamiento llamada 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 asociada con una clase de almacenamiento llamada 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 utilizando kubectl get pod --watch. -
Verifique 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 el "Objetos de Kubernetes y Trident" para obtener más detalles sobre cómo interactúan las clases de almacenamiento con PersistentVolumeClaim los parámetros y para controlar cómo Astra Trident aprovisiona los volúmenes.