Middle
Kubernetes контекстинде PV жана PVC эмне?
sobes.tech AI
AIден жооп
Туруктуу көлөм (PV) — бул Kubernetes кластериндеги сактоо ресурсу. Ал сактоо боюнча конкреттүү ишке ашыруу деталдарын керектөөчүлөрдөн абстракциялайт. PV кластердин администратору тарабынан башкарылат жана кез келген поддун жашоосу менен байланышы жок.
Туруктуу көлөм талап (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ге шилтеме