Gestiunea Stocării Persistente cu PersistentVolume, PVC și StorageClass în Kubernetes (kubectl)

Ghid complet de stocare în Kubernetes: decuplarea volumelor de calcul prin PersistentVolume (PV), revendicări de stocare (PVC) și provizionare automată dinamică în cloud prin StorageClass și drivere CSI.

Sintaxă comandă
kubectl get pv,pvc,storageclass | kubectl describe pvc app-data-pvc

În Kubernetes, gestiunea stocării este decuplată conform principiului separării responsabilităților: administratorul de infrastructură configurează bazinele de stocare fizică (prin StorageClass sau PersistentVolume – PV), în timp ce dezvoltatorii solicită spațiu de stocare printr-o revendicare declarativă (PersistentVolumeClaim – PVC) fără a fi nevoie să cunoască detaliile hardware din spate.

Provizionarea dinamică a stocării prin StorageClass și PVC
# 1. Definirea unui StorageClass (oferit de providerul cloud sau CSI local):
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-nvme-ssd
provisioner: kubernetes.io/aws-ebs # Sau hetzner.csi.k8s.io / cinder etc.
parameters:
  type: gp3
  iops: "3000"
volumeBindingMode: WaitForFirstConsumer # Creează discul doar când Pod-ul este programat pe un nod!

---
# 2. Solicitarea stocării de către aplicație printr-un PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-storage-pvc
spec:
  accessModes:
    - ReadWriteOnce # Volumul poate fi montat de un singur nod la un moment dat
  storageClassName: fast-nvme-ssd
  resources:
    requests:
      storage: 50Gi

Modurile de Acces pentru Volume (Access Modes):

  • ReadWriteOnce (RWO): Volumul poate fi montat pentru citire și scriere de către un singur nod. Modul standard pentru volume de tip Block Storage (AWS EBS, Hetzner Volume).
  • ReadOnlyMany (ROX): Volumul poate fi montat numai-citire de către multiple noduri simultan.
  • ReadWriteMany (RWX): Volumul poate fi montat simultan pentru citire și scriere de către sute de Pod-uri de pe noduri diferite (necesită sisteme de fișiere distribuite precum NFS, CephFS sau AWS EFS).