فهم Kubernetes Operators
اكتشف كيف توسّع Operators إمكانات Kubernetes لأتمتة إدارة دورة حياة التطبيقات المعقدة
فهم Kubernetes Operators درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 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) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «فهم Kubernetes Operators»؟
اكتشف كيف توسّع Operators إمكانات Kubernetes لأتمتة إدارة دورة حياة التطبيقات المعقدة تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «فهم Kubernetes Operators»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- StatefulSets للتطبيقات ذات الحالة
- DaemonSets للمهام الخاصة بالعقد
- فهم Kubernetes Operators
- تعريفات الموارد المخصّصة (CRDs)