Middle
Ի՞նչ են PV և PVC-ը Kubernetes-ի համատեքստում։
sobes.tech AI
Պատասխան AI-ից
Տևական հզորություն (PV) — դա պահեստավորման ռեսուրս է Kubernetes խմբում: Այն ամփոփում է կոնկրետ պահեստավորման իրականացման մանրամասները օգտագործողներից: PV-ը կառավարում է խմբի ադմինիստրատորը և գոյություն ունի անկախ ցանկացած պոդի կյանքի ցիկլից:
Տևական հզորություն պահանջ (PVC) — դա օգտագործողի պահանջն է պահեստավորման համար: Օգտագործողը պահանջում է պահեստավորման ծավալ որոշ հատկանիշներով (չափ, մուտքի ռեժիմ): PVC-ը կապված է համապատասխան PV-ի հետ: Եթե համապատասխան PV չի գտնվել, կարող է դինամիկ ստեղծվել նոր PV՝ եթե համապատասխան StorageClass-ը կարգավորել է:
Հիմնական տարբերությունները և փոխազդեցությունները:
- PV: Ներկայացնում է իրական պահեստավորման ռեսուրսը:
- PVC: Ներկայացնում է օգտագործողի պահանջը պահեստավորման համար:
- PVC-ը կապված է PV-ի հետ:
- PV-ը կարող է լինել ստատիկ՝ ադմինիստրատորի կողմից կամ դինամիկ՝ PVC-ի պահանջով՝ օգտագործելով StorageClass:
- Pod-ը հղում է անում PVC-ին, ոչ թե ուղղակի PV-ին, ինչը թույլ է տալիս առանձին պահել հավելվածի տրամաբանությունը և պահեստավորման մանրամասները:
Մուտքի ռեժիմներ (Access Modes) PV և PVC համար:
ReadWriteOnce(RWO): Տոմը կարող է միաժամանակ միացնել որպես ընթերցանություն և գրանցում մեկ հանգույցից:ReadOnlyMany(ROX): Տոմը կարող է միայն ընթերցանության համար միացնել մի քանի հանգույցներից:ReadWriteMany(RWX): Տոմը կարող է միացնել որպես ընթերցանություն և գրանցում մի քանի հանգույցներից:
YAML օրինակ PV և PVC համար:
# persistent-volume.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain # Ինչ անել տոմի հետ PVC ջնջելուց հետո (Retain, Recycle, Delete)
storageClassName: local-storage # Կարող է օգտագործվել կապելու համար StorageClass-ի հետ
local:
path: /mnt/data
nodeAffinity: # Լոկալ պահեստավորման համար հարմարեցում
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-ի կամ StorageClass-ի հետ
# 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-ին