Provisionar um volume
Crie um Persistentvolume (PV) e um PersistentVolumeClaim (PVC) que use o Kubernetes StorageClass configurado para solicitar acesso ao PV. Em seguida, pode montar o PV num pod.
Visão geral
A "Persistentvolume" (PV) é um recurso de armazenamento físico provisionado pelo administrador de cluster em um cluster do Kubernetes. O "PersistentVolumeClaim" (PVC) é um pedido de acesso ao Persistentvolume no cluster.
O PVC pode ser configurado para solicitar o armazenamento de um determinado tamanho ou modo de acesso. Usando o StorageClass associado, o administrador do cluster pode controlar mais do que o Persistentvolume e o modo de acesso, como desempenho ou nível de serviço.
Depois de criar o PV e o PVC, você pode montar o volume em um pod.
Manifestos de amostra
Persistentvolume Sample MANIFEST
Este manifesto de exemplo mostra um PV básico de 10Gi que está associado ao 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"
PersistentVolumeClaim amostra manifestos
Estes exemplos mostram opções básicas de configuração de PVC.
Este exemplo mostra um PVC básico com acesso RWO associado a um StorageClass basic-csi
chamado .
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: basic-csi
Este exemplo mostra um PVC básico para NVMe/TCP com acesso RWO associado a um StorageClass protection-gold
chamado .
--- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-san-nvme spec: accessModes: - ReadWriteOnce resources: requests: storage: 300Mi storageClassName: protection-gold
Amostras de manifesto POD
Estes exemplos mostram configurações básicas para anexar o PVC a um 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
Crie o PV e o PVC
-
Crie o PV.
kubectl create -f pv.yaml
-
Verifique o estado do PV.
kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv-storage 4Gi RWO Retain Available 7s
-
Crie o PVC.
kubectl create -f pvc.yaml
-
Verifique o estado do PVC.
kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-storage Bound pv-name 2Gi RWO 5m
-
Monte o volume num pod.
kubectl create -f pv-pod.yaml
Pode monitorizar o progresso utilizando `kubectl get pod --watch`o . -
Verifique se o volume está montado no
/my/mount/path
.kubectl exec -it task-pv-pod -- df -h /my/mount/path
-
Agora você pode excluir o Pod. O aplicativo Pod não existirá mais, mas o volume permanecerá.
kubectl delete pod task-pv-pod
"Objetos Kubernetes e Trident"Consulte para obter detalhes sobre como as classes de armazenamento interagem com os PersistentVolumeClaim
parâmetros e para controlar como o Trident provisiona volumes.