Middle
Kubernetes kontekstində PV və PVC nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Həcmi Davamlı (PV) Kubernetes klasterində saxlama resursudur. Bu, istifadəçilərin saxlama tətbiqinin müəyyən detalları ilə əlaqəsini qavrayır. PV, klaster administratoru tərəfindən idarə olunur və hər hansı podun həyat dövründən müstəqildir.
Həcmi Tələb (PVC) istifadəçinin saxlama üçün sorğusudur. İstifadəçi müəyyən xüsusiyyətlərə (ölçü, giriş rejimi) malik saxlama həcmi tələb edir. PVC uyğun PV ilə əlaqələndirilir. Əgər uyğun PV tapılmazsa, müvafiq StorageClass konfiqurasiya olunubsa, dinamik olaraq yeni PV təmin edilə bilər.
Əsas fərqlər və qarşılıqlı əlaqələr:
- PV: Faktiki saxlama resursunu təmsil edir.
- PVC: İstifadəçinin saxlama tələbinə aiddir.
- PVC, PV ilə əlaqələndirilir.
- PV, administrator tərəfindən statik olaraq yaradılabilir və ya PVC-ə cavab olaraq StorageClass istifadə edilərək dinamik olaraq yaradılır.
- Pod, PV-ə deyil, PVC-ə istinad edir, bu da tətbiq məntiqini saxlama detalları ilə ayırmağa imkan verir.
Giriş Modları (Access Modes) PV və PVC üçün:
ReadWriteOnce(RWO): Həcmi yalnız bir nod tərəfindən oxuma və yazma üçün montaj edilə bilər.ReadOnlyMany(ROX): Həcmi çox nod tərəfindən yalnız oxuma üçün montaj edilə bilər.ReadWriteMany(RWX): Həcmi çox nod tərəfindən oxuma və yazma üçün montaj edilə bilər.
YAML nümunəsi PV və PVC üçün:
# persistent-volume.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain # PVC silindikdən sonra həcmlə nə ediləcək (Retain, Recycle, Delete)
storageClassName: local-storage # StorageClass ilə əlaqələndirilə bilər
local:
path: /mnt/data
nodeAffinity: # Yerli saxlama üçün uyğunluq
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- my-node
# persistent-volume-claim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: local-storage # PV və ya StorageClass ilə əlaqələndirilir
# pod-using-pvc.yaml
apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: app-container
image: nginx
volumeMounts:
- name: app-storage
mountPath: /usr/share/nginx/html
volumes:
- name: app-storage
persistentVolumeClaim:
claimName: my-pvc # PVC-ə istinad