0Pricing
Kubernetes Basics · درس

فهم Kubernetes Operators

اكتشف كيف توسّع Operators إمكانات Kubernetes لأتمتة إدارة دورة حياة التطبيقات المعقدة

فهم Kubernetes Operators درس مجاني في Kubernetes Basics على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kubernetes Basics، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kubernetes Basics 4 دروس في المجموع.

تعرّفوا على Kubernetes Operators

تُعد Kubernetes Operators امتدادات قوية تتيح لكم أتمتة إدارة التطبيقات المعقدة.

فكّروا فيها على أنها «روبوتات» تفهم كيفية نشر برامج معينة، مثل قاعدة بيانات أو قائمة انتظار رسائل تعمل على Kubernetes، وتوسيع نطاقها وصيانتها.

أتمتة التطبيقات المعقدة

بينما تتفوق Kubernetes في إدارة التطبيقات عديمة الحالة باستخدام Deployments، فإن التطبيقات ذات الحالة (مثل قواعد البيانات) لها احتياجات فريدة:

  • الإعداد: التهيئة الأولية وتعبئة البيانات.
  • التوسعة: إضافة النسخ أو إزالتها بأمان.
  • النسخ الاحتياطي والاستعادة: أمران مهمان لسلامة البيانات.
  • الترقيات: تنفيذ تحديثات تدريجية من دون فقدان البيانات.

صُممت Operators للتعامل تلقائيًا مع «عمليات اليوم الثاني» هذه.

توسيع واجهة Kubernetes البرمجية

تضيف Operators أنواعًا جديدة من الكائنات إلى Kubernetes تُسمى Custom Resources (CRs). وتشبه هذه الكائنات كائنات Kubernetes المضمنة (مثل Pods وDeployments)، لكنها مخصصة لتطبيقكم.

على سبيل المثال، قد تضيف Operator خاصة بقاعدة بيانات موردًا مخصصًا من نوع PostgreSQL أو MySQL.

تعريف كائنات جديدة (CRDs)

قبل أن تتمكنوا من إنشاء Custom Resource، يجب تعريف مخططه باستخدام Custom Resource Definition (CRD). إذ يخبر CRD Kubernetes بالحقول التي سيحتوي عليها الكائن الجديد.

ويشبه ذلك تعريف مخطط أولي للكائن المخصص.

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: myapps.example.com
spec:
  group: example.com
  versions:
    - name: v1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                message:
                  type: string
                  description: A message to display
  scope: Namespaced
  names:
    plural: myapps
    singular: myapp
    kind: MyApp
    shortNames:
      - ma

دور Operator

تُعد Operator في الأساس وحدة تحكم متخصصة توسّع مستوى التحكم في Kubernetes. فهي تراقب التغييرات التي تطرأ على Custom Resources الخاصة بها، ثم تنفذ إجراءات محددة.

كما أنها تحوّل المعرفة التشغيلية البشرية إلى برمجيات.

آلية عمل Operators: المطابقة

تتمثل جوهر Operator في «حلقة المطابقة» الخاصة بها. إذ تواصل هذه الحلقة باستمرار ما يلي:

  • المراقبة: التحقق من الحالة الحالية لـ Custom Resources والكائنات المرتبطة بها في Kubernetes.
  • المقارنة: مقارنة الحالة المرصودة بالحالة المطلوبة (المحددة في CR).
  • التنفيذ: اتخاذ الخطوات اللازمة (مثل إنشاء Pods وServices وConfigMaps) لجعل الحالة المرصودة متوافقة مع الحالة المطلوبة.

Operator لقاعدة بيانات قيد التشغيل

تخيلوا وجود PostgreSQL Operator. عند إنشاء مورد مخصص من نوع PostgreSQL، تقوم Operator بما يلي:

  • توفير عنقود PostgreSQL (Pods وPersistent Volumes).
  • تهيئة الشبكة (Services).
  • إدارة النسخ الاحتياطية والترقيات وعمليات التحويل التلقائي عند التعطل.

أنتم تصرّحون بقولكم «أريد قاعدة بيانات PostgreSQL»، وتتولى Operator تنفيذ ذلك.

apiVersion: example.com/v1
kind: PostgreSQL
metadata:
  name: my-db
spec:
  version: "14"
  replicas: 3
  storage: 10Gi
  backupSchedule: "0 0 * * *"

تشغيل Operator

لاستخدام Operator، يجب أولًا نشره إلى مجموعة Kubernetes الخاصة بكم. ويتضمن ذلك عادةً تطبيق Deployments وService Accounts وقواعد Role-Based Access Control (RBAC) الخاصة به.

بعد نشره، يبدأ في مراقبة Custom Resources الخاصة به.

# This is a conceptual command.
# Actual operator deployment varies.
kubectl apply -f https://operatorhub.io/install/example-operator.yaml

لماذا نستخدم Operators؟

توفر Operators مزايا مهمة لإدارة التطبيقات على Kubernetes:

  • الأتمتة: أتمتة المهام التشغيلية المعقدة.
  • الموثوقية: تقليل الأخطاء البشرية وضمان عمليات نشر متسقة.
  • قابلية التوسع: التعامل تلقائيًا مع التوسع والإصلاح.
  • الخبرة المتخصصة: تضمين المعرفة الخاصة بالتطبيق.

فهي تبسّط تشغيل البرمجيات المتقدمة.

اختبار معرفتكم بـ Operators

لنختبر مدى فهمكم لـ Kubernetes Operators!

Operators: أتمتة ذكية

استكشفنا في هذا الدرس Kubernetes Operators، وهي أدوات قوية توسّع إمكانات Kubernetes.

تعلّمنا أن Operators تستخدم Custom Resources (CRs) وCustom Resource Definitions (CRDs) لإضافة كائنات API جديدة، وتعمل بوصفها وحدات تحكم متخصصة توائم باستمرار الحالة المطلوبة لتطبيقاتكم.

تؤتمت Operators عمليات "Day 2 operations" المعقدة للتطبيقات ذات الحالة والتطبيقات المتقدمة، مما يجعل إدارتها على Kubernetes أسهل.

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

هل درس «فهم Kubernetes Operators» مجاني؟

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

ماذا ستتعلم في «فهم Kubernetes Operators»؟

اكتشف كيف توسّع Operators إمكانات Kubernetes لأتمتة إدارة دورة حياة التطبيقات المعقدة تتمرن على Kubernetes Basics مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «فهم Kubernetes Operators»؟

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

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

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

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

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