StorageClasses والتوفير الديناميكي
تعلّموا كيف تتيح StorageClasses لـKubernetes توفير Persistent Volumes تلقائيًا عند الطلب دون عمل إداري يدوي
StorageClasses والتوفير الديناميكي درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
مشكلة التخزين اليدوي
مع التزويد الساكن، يجب على المسؤول إنشاء كل PersistentVolume يدوياً قبل أن يتمكن PersistentVolumeClaim من الارتباط به. ولا يتوسع هذا الأسلوب بشكل عملي.
ينشئ التزويد الديناميكي وحدات التخزين تلقائياً عند إنشاء مطالبة.
ما هي StorageClass؟
تصف StorageClass نوعاً من التخزين يمكن للمجموعة توفيره: أي provisioner يجب استخدامه، وما المعلمات، وكيف تتصرف وحدات التخزين.
فكّر فيها على أنها قالب لإنشاء PersistentVolumes عند الطلب.
تعريف StorageClass
يحدد الحقل provisioner المكوّن الإضافي الذي ينشئ وحدة التخزين، وغالباً ما يكون مشغل قرص سحابياً.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp3
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumerطلب تخزين ديناميكي
تشير PVC ببساطة إلى StorageClass بالاسم. ثم يوفّر Kubernetes تلقائياً PV مطابقاً.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes: ['ReadWriteOnce']
storageClassName: fast-ssd
resources:
requests:
storage: 10GiStorageClass الافتراضية
إذا أغفلت PVC الحقل storageClassName، يستخدم Kubernetes StorageClass الافتراضية للمجموعة (المحددة بواسطة annotation). وهذا يجعل المطالبات تعمل مباشرةً دون إعداد إضافي.
kubectl get storageclass
# NAME PROVISIONER DEFAULT
# standard (default) ...سياسة الاسترداد
يحدد reclaimPolicy ما يحدث عند حذف PVC:
- Delete: تُحذف وحدة التخزين الأساسية أيضاً
- Retain: تُحتفظ بوحدة التخزين للاسترداد اليدوي
نمط ربط وحدة التخزين
يؤخر WaitForFirstConsumer إنشاء وحدة التخزين حتى تتم جدولة Pod يستخدم PVC. ويضمن ذلك وجود القرص في المنطقة نفسها التي يوجد فيها Pod.
أما Immediate فيوفّر وحدة التخزين فوراً، ما قد يؤدي إلى عدم تطابق المناطق.
مراقبة حدوث التزويد
بعد تطبيق PVC، راقب انتقالها من Pending إلى Bound أثناء إنشاء وحدة التخزين.
kubectl apply -f pvc.yaml
kubectl get pvc data -w
# data Pending
# data Bound pvc-8a3f... 10Giطبقات متعددة
تعرّف المجموعات غالباً عدة StorageClasses لتلبية احتياجات مختلفة، ما يتيح للفرق اختيار المفاضلة المناسبة لكل حمل عمل.
# fast-ssd -> low latency, higher cost
# standard -> balanced default
# cold-hdd -> cheap, archivalتوسيع وحدات التخزين
إذا كان لدى StorageClass الخيار allowVolumeExpansion: true، يمكنك زيادة حجم PVC بتعديل الحجم المطلوب، وسيتولى provisioner تغيير حجم القرص الأساسي.
spec:
resources:
requests:
storage: 20Gi # increased from 10Giمتى تستخدم التخزين الساكن أو الديناميكي
- الديناميكي: الخيار الافتراضي؛ يتيح الخدمة الذاتية ويتوسع جيداً
- الساكن: عندما تحتاج إلى الارتباط بقرص محدد موجود مسبقاً أو بتصدير NFS
تحقق سريع
اختبر مدى استيعابك للتزويد الديناميكي.
مراجعة
تعلّمت أن StorageClass تحدد قالب إنشاء التخزين، ما يتيح التزويد الديناميكي. وتشمل الحقول الأساسية provisioner وreclaimPolicy وvolumeBindingMode. وتشير PVCs إلى فئة بالاسم، بينما تتولى الفئة الافتراضية معالجة المطالبات التي لا تحدد فئة.
الأسئلة الشائعة
هل درس «StorageClasses والتوفير الديناميكي» مجاني؟
نعم — نص درس «StorageClasses والتوفير الديناميكي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «StorageClasses والتوفير الديناميكي»؟
تعلّموا كيف تتيح StorageClasses لـKubernetes توفير Persistent Volumes تلقائيًا عند الطلب دون عمل إداري يدوي تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «StorageClasses والتوفير الديناميكي»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ConfigMaps للإعدادات
- Secrets للبيانات الحساسة
- وحدات التخزين الدائمة ومطالباتها
- StorageClasses والتوفير الديناميكي