0Pricing
DevOps Bootcamp · درس

تعريفات الموارد المخصّصة (CRDs)

تعلّم كيف توسّع Custom Resource Definitions واجهة Kubernetes البرمجية بأنواع الموارد الخاصة بك، وهي الأساس الذي تُبنى عليه Operators.

تعريفات الموارد المخصّصة (CRDs) درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

توسيع Kubernetes API

لا تقتصر Kubernetes على الكائنات المضمنة مثل Pods وDeployments. فمن خلال Custom Resource Definition (CRD) يمكنكم تعليم Kubernetes أنواعًا جديدة تمامًا من الموارد.

ما هو Custom Resource

‏Custom Resource (CR) هو مثيل لنوع حددتموه. وبعد تثبيت CRD، تنشئون CRs باستخدام kubectl تمامًا مثل الكائنات الأصلية.

بنية CRD

يحدد CRD النوع الجديد، ومجموعة API، والإصدار، والنطاق (مرتبطًا بنطاق أسماء أو على مستوى العنقود).

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: backups.data.example.com
spec:
  group: data.example.com
  scope: Namespaced
  names:
    plural: backups
    singular: backup
    kind: Backup

تعريف المخطط

يتحقق مخطط OpenAPI من حقول المورد المخصص، ويرفض المواصفات غير الصالحة وقت الإنشاء.

versions:
- name: v1
  served: true
  storage: true
  schema:
    openAPIV3Schema:
      type: object
      properties:
        spec:
          type: object
          properties:
            schedule:
              type: string
            retention:
              type: integer

إنشاء Custom Resource

بعد تطبيق CRD، تنشئون مثيلات من النوع الجديد.

apiVersion: data.example.com/v1
kind: Backup
metadata:
  name: nightly-db
spec:
  schedule: '0 2 * * *'
  retention: 7

العمل مع CRs عبر kubectl

تُعد الموارد المخصصة مواطنًا من الدرجة الأولى. ويمكنكم عرضها ووصفها وحذفها باستخدام أوامر مألوفة.

kubectl get backups
kubectl describe backup nightly-db
kubectl delete backup nightly-db

الأسماء المختصرة وأعمدة العرض

يمكنكم تحديد أسماء مختصرة وأعمدة مخصصة للجدول لتسهيل التعامل مع CRs.

names:
  shortNames: ['bk']
additionalPrinterColumns:
- name: Schedule
  type: string
  jsonPath: .spec.schedule

CRDs مجرد بيانات

لا يخزّن CRD بحد ذاته سوى البيانات في etcd، ولا يتصرف بناءً عليها. ولكي يحدث Backup فعلًا، تحتاجون إلى وحدة تحكم تراقب هذه الموارد.

الصلة بـ Operators

‏Operator هو وحدة تحكم بالإضافة إلى CRD واحد أو أكثر. ويحدد CRD الحالة المطلوبة، بينما توائم وحدة التحكم الواقع معها باستمرار. وتُعد CRDs الأساس الذي تستند إليه Operators.

إدارة إصدارات CRDs

تدعم CRDs إصدارات متعددة مع التحويل، مما يتيح لكم تطوير API. ويُحدد إصدار واحد بالضبط بوصفه إصدار التخزين في etcd.

versions:
- name: v1beta1
  served: true
  storage: false
- name: v1
  served: true
  storage: true

متى تستخدمون CRDs

  • تريدون نمذجة مفهوم من مجالكم بطريقة تصريحية (Backup أو Database أو Certificate)
  • تبنون Operator لأتمتة العمليات
  • تريدون أن يدير المستخدمون تطبيقكم باستخدام أساليب العمل المألوفة في kubectl

اختبار سريع

اختبروا مدى فهمكم لـ CRD.

مراجعة

تعلمتم أن CRDs توسّع Kubernetes API بأنواع مخصصة، يتحقق منها مخطط OpenAPI وتُدار باستخدام أوامر kubectl المعتادة. ويخزّن CRD وحده البيانات فقط؛ أما جمعه مع وحدة تحكم فينتج Operator يطابق الحالة المطلوبة مع الواقع.

الأسئلة الشائعة

هل درس «تعريفات الموارد المخصّصة (CRDs)» مجاني؟

نعم — نص درس «تعريفات الموارد المخصّصة (CRDs)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «تعريفات الموارد المخصّصة (CRDs)»؟

تعلّم كيف توسّع Custom Resource Definitions واجهة Kubernetes البرمجية بأنواع الموارد الخاصة بك، وهي الأساس الذي تُبنى عليه Operators. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «تعريفات الموارد المخصّصة (CRDs)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. StatefulSets للتطبيقات ذات الحالة
  2. DaemonSets للمهام الخاصة بالعقد
  3. فهم Kubernetes Operators
  4. تعريفات الموارد المخصّصة (CRDs)
← العودة إلى DevOps Bootcamp