Middle
PV ва PVC дар контексти Kubernetes чӣ мебошанд?
sobes.tech AI
Ҷавоб аз AI
Ҳоҷатхона (PV) — ин манбаи нигоҳдории дар кластер Kubernetes мебошад. Он тафсилоти иҷрои махсуси нигоҳдорииро аз истеъмолкунандагон пинҳон мекунад. PV аз ҷониби администратори кластер идора мешавад ва мустақил аз ҳаёти ҳар як pod вуҷуд дорад.
Даъвои нигоҳдории доимӣ (PVC) — ин дархости корбар барои нигоҳдории маълумот мебошад. Корбар ҳаҷмро бо хусусиятҳои муайян (андоза, режими дастрасӣ) талаб мекунад. PVC бо PV мувофиқ пайваст мешавад. Агар PV мувофиқ ёфтан натавонад, метавонад дар асоси StorageClass мувофиқ, PV нав ба таври динамикӣ эҷод шавад.
Тафовутҳо ва ҳамкориҳо:
- 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