تخطَّ إلى المحتوى

Volumes و PV و PVC

Container مؤقت. لو كتب ملفات داخله ثم تم حذفه، قد تضيع الملفات. لذلك نستخدم Volume.

Volume مساحة تخزين تركب داخل Pod.

volumes:
- name: cache
emptyDir: {}

emptyDir يعيش مع Pod فقط. لو حذف Pod، يحذف التخزين.

  • PersistentVolume هو التخزين المتاح في Cluster.
  • PersistentVolumeClaim هو طلب تخزين يقدمه التطبيق.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: data

StorageClass يحدد طريقة إنشاء التخزين. في Cloud قد ينشئ disk تلقائيا.

Terminal window
kubectl get storageclass
الوضعالمعنى
ReadWriteOnceيركب للقراءة والكتابة بواسطة Node واحدة
ReadOnlyManyيركب للقراءة فقط بواسطة أكثر من Node
ReadWriteManyيركب للقراءة والكتابة بواسطة أكثر من Node

Lab: PVC عملي

المستوى: مبتدئ الوقت: 35 دقيقة الأدوات: kubectl

الهدف: إنشاء PVC وتركيبه داخل Pod وكتابة ملف.

أنشئ PVC ثم Pod يستخدمه، واكتب ملفا في /data. احذف Pod وأعد إنشاءه بنفس PVC ثم تأكد أن الملف موجود.