Sobes.tech
Middle

Czym jest Persistent Volume (PV) i Persistent Volume Claim (PVC)?

sobes.tech AI

Odpowiedź od AI

Persistent Volume (PV) to abstrakcja w Kubernetes, reprezentująca część przechowywania w klastrze, która została specjalnie przygotowana przez administratora. PV jest zasobem klastra i istnieje niezależnie od cyklu życia poda.

Persistent Volume Claim (PVC) to żądanie poda o wykorzystanie określonej ilości przechowywania z określonymi cechami dostępu (trybami) i wydajnością. PVC jest powiązane z PV spełniającym jego wymagania.

Główne cechy:

  • PV: Zasób klastra zarządzany przez administratora. Opisuje fizyczny lub sieciowy nośnik danych (NFS, iSCSI, chmura obliczeniowa itp.). Ma cykl życia niezależny od podów.
  • PVC: Żądanie użytkownika (programisty) na potrzebną ilość przechowywania. Powiązuje się z dostępnym PV. Określa wymagania (rozmiar, prawa dostępu).

Cykl życia PV/PVC:

  1. Provisioning (rezerwacja): Administrator tworzy PV lub Kubernetes tworzy go dynamicznie na podstawie StorageClass.
  2. Binding (wiązanie): PVC szuka odpowiedniego PV spełniającego wymagania (rozmiar, tryby dostępu). Jeśli znajdzie, dochodzi do wiązania.
  3. Using (użycie): Pod korzysta z PVC, montując go w kontenerze.
  4. Releasing (zwolnienie): PVC jest usuwane. PV może być zwolnione lub pozostać zarezerwowane (w zależności od polityki).
  5. Recycling (recykling)/Deleting (usuwanie)/Retaining (zachowanie): Polityka czyszczenia PV po zwolnieniu PVC.

Przykład PV:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: nfs.przyklad.com
    path: "/exported/path"

Przykład PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: moj-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

Użycie: Pod odwołuje się do PVC w swojej specyfikacji, aby zamontować wolumin.