توسيع التطبيقات باستخدام ReplicaSets
استخدم ReplicaSets لضمان تشغيل عدد محدد من الوحدات المتطابقة باستمرار
توسيع التطبيقات باستخدام ReplicaSets درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
لماذا يُعدّ التوسّع مهمًا
في عالم التطبيقات السحابية الأصلية، يُعدّ التوسّع أمرًا بالغ الأهمية. فهو يضمن قدرة تطبيقاتكم على التعامل مع أعباء العمل المتفاوتة، واستمرار توفرها حتى في حال تعطل بعض المكوّنات.
يعني التوسّع ضبط عدد نُسخ التطبيق قيد التشغيل لتلبية الطلب. إذا كان العدد قليلًا جدًا، يصبح تطبيقكم بطيئًا أو غير مستجيب. وإذا كان كبيرًا جدًا، فستُهدر الموارد.
تعرّفوا على ReplicaSet
يُعدّ ReplicaSet كائنًا أساسيًا في Kubernetes، وتتمثل مهمته الرئيسية في الحفاظ على مجموعة مستقرة من Pods قيد التشغيل في أي وقت.
يمكنكم اعتباره حارسًا لـ Pods الخاصة بكم. فهو يضمن أن يكون عدد Pods المتطابقة التي تريدونها مساويًا دائمًا لعدد Pods قيد التشغيل فعليًا.
المهمة الأساسية لـ ReplicaSet
يتمثل الهدف الرئيسي لـ ReplicaSet في ضمان توفر عدد محدد من Pods المتطابقة.
- إذا توقفت Pod عن العمل (مثلًا بسبب تعطل عقدة)، ينشئ ReplicaSet واحدة جديدة تلقائيًا.
- إذا أنشأت عملية خارجية عددًا كبيرًا جدًا من Pods، ينهي ReplicaSet الزائدة منها.
- تُعدّ هذه القدرة على الإصلاح الذاتي ضرورية لموثوقية التطبيق.
بنية YAML لـ ReplicaSet
مثل كائنات Kubernetes الأخرى، يُعرَّف ReplicaSet باستخدام ملف YAML. فيما يلي نظرة على بنيته الأساسية:
apiVersion: يحدد إصدار Kubernetes API (مثلًا،apps/v1).kind: يحدد نوع الكائن، وهوReplicaSet.metadata: يحتوي على معلومات تعريفية مثلname.spec: يصف الحالة المطلوبة لـ ReplicaSet.
الحالة المطلوبة: Replicas وSelector
داخل قسم spec، يوجد حقلا replicas وselector المهمان:
replicas: رقم يحدد عدد Pods المتطابقة التي تريدون تشغيلها.selector: يحدد كيفية العثور على Pods وإدارتها بواسطة ReplicaSet. ويستخدم labels لمطابقة Pods. ولن تُعدّ جزءًا من ReplicaSet إلا Pods التي تطابق هذه labels.
قالب Pod
يوفر الحقل spec.template المخطط الأساسي لـ Pods التي سينشئها ReplicaSet. وهو في الأساس تعريف عادي لـ Pod.
يتضمن هذا القالب metadata الخاصة بـ Pod (مثل labels) ومواصفاتها (مثل صور الحاويات والمنافذ وغير ذلك). يجب أن تتطابق labels الموجودة في القالب مع spec.selector!
تعريف ReplicaSet بسيط
لنعرّف ReplicaSet يضمن تشغيل 2 من Pods لخادم الويب Nginx دائمًا. لاحظوا كيف تتطابق labels في قالب Pod (app: nginx) مع selector.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx-replicaset
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80الإنشاء والتحقق من الحالة
لإنشاء ReplicaSet هذه، احفظوا YAML باسم nginx-rs.yaml وطبّقوه. ثم تحققوا من حالتها ومن Pods التي تديرها:
kubectl apply -f nginx-rs.yaml
kubectl get rs
kubectl get pods -l app=nginxالتوسّع والحدّ منه
يمكنكم تغيير عدد Pods المطلوبة لـ ReplicaSet ديناميكيًا باستخدام الأمر kubectl scale. لنوسّع ReplicaSet الخاصة بـ Nginx إلى 4 Pods:
kubectl scale --replicas=4 rs/nginx-replicaset
kubectl get rs
kubectl get pods -l app=nginxمراقبة التوسّع
عند توسيع ReplicaSet، ينشئ Kubernetes Pods أو يحذفها تلقائيًا لتطابق عدد replicas الجديد. يمكنكم متابعة ذلك في الوقت الفعلي:
kubectl scale --replicas=1 rs/nginx-replicaset
kubectl get pods -l app=nginx -wتحدي التوسّع
لديكم ReplicaSet باسم my-app-rs تشغّل حاليًا 3 Pods. وتريدون زيادة العدد إلى 5 Pods. ما أمر kubectl الذي ستستخدمونه؟
مراجعة والخطوات التالية
لقد تعلمتم أن ReplicaSets ضرورية للحفاظ على عدد مطلوب من Pods المتطابقة، إذ توفر الإصلاح الذاتي والتوافر العالي لتطبيقاتكم. ويمكنكم تعريفها في YAML وتوسيعها باستخدام kubectl scale.
رغم قوة ReplicaSets، ستستخدمون عمليًا في الغالب Deployments، التي تدير ReplicaSets نيابةً عنكم وتوفر ميزات أكثر تقدمًا مثل التحديثات التدريجية. سنستكشف Deployments بعد ذلك!
الأسئلة الشائعة
هل درس «توسيع التطبيقات باستخدام ReplicaSets» مجاني؟
نعم — نص درس «توسيع التطبيقات باستخدام ReplicaSets» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «توسيع التطبيقات باستخدام ReplicaSets»؟
استخدم ReplicaSets لضمان تشغيل عدد محدد من الوحدات المتطابقة باستمرار تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «توسيع التطبيقات باستخدام ReplicaSets»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- فهم Deployments
- توسيع التطبيقات باستخدام ReplicaSets
- التحديثات التدريجية والتراجع
- استراتيجيات النشر: Blue-Green وCanary