5.3 · كوبرنيتس (Kubernetes) في 20 دقيقة : بد (Pod) ونشر (Deployment) وخدمة (Service)

المستوى 5 · التنسيق والإنتاج (Orchestration & production)

5.3كوبرنيتس (Kubernetes) في 20 دقيقة : بد (Pod) ونشر (Deployment) وخدمة (Service)

الهدف: نشر تطبيق على كوبرنيتس (Kubernetes) محلي والوصول إليه.
الوقت المقدّر: 15 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • ثلاثة كائنات، ومبدأ واحد : فـ البد (Pod) يغلّف الحاويات، والنشر (Deployment) يحفظ N من البدات المتماثلة ويحدّثها، والخدمة (Service) تعطي عنوانا مستقرا أمام بدات قابلة للتبديل.
  • نصرّح، فيطبق kubectl : تصريحات بـ YAML، وأمر تطبيق واحد — فالعنقود يحفظ الحالة المرادة (بد مفقود = بد معاد إنشاؤه).
  • المختبر المحلي أولا : يكفي عنقود محلي واحد للتعلم — ووسوم صور ثابتة، وأبدا أي ترقيع مستضاف ذاتيا في الإنتاج دون فريق.

حالة مصغرة متسلسلة — إدير يلمس كوبرنيتس محليا

يريد إدير، مهندس العمليات المبتدئ في الجزائر، فهم كوبرنيتس (Kubernetes) دون سحابة ولا فاتورة : فينشئ عنقودا محليا بأمر واحد على آلته، ويطبق عليه نشرا (3 نسخ مكررة) وخدمة، ويصل إلى تطبيقه محليا، ثم يقتل بدا ليرى النشر يعيد إنشاءه. تتمة الحالة 5.2 — ينتقل إدير من حزمة سرب (Swarm) إلى أول نشر كوبرنيتس (Kubernetes).

تتمة الحالة 5.2 — يتعلم إدير على عنقود محلي قبل أي فكرة إنتاج.

1. ثلاثة كائنات، ومبدأ واحد

البد (Pod) هو غلاف حاوية واحدة أو عدة حاويات متجاورة ؛ والنشر (Deployment) يحفظ N من البدات المتماثلة ويدير تحديثاتها ؛ والخدمة (Service) تعطي عنوانا مستقرا أمام بدات قابلة للتبديل تولد وتموت. ويحفظ إدير الجملة : نصل المستقر (الخدمة)، لا المتحرك (البدات).

نـ صرّح بالحالة المرادة بـ YAML (النسخ، والصورة، والمحددات، والمنافذ)، ونـ طبّق بالعميل kubectl، ويحفظ العنقود هذه الحالة : وهو المبدأ التصريحي.

2. المختبر المحلي

لا سحابة للبدء : يكفي عنقود محلي منشأ بأمر واحد، مع kubectl مضبوط عليه. ويطبق إدير تصريحاته، ويتحقق من بداته الـ 3، ويصل إلى الخدمة محليا (إعادة توجيه منفذ للتطوير) — ولوحة متابعة اختيارية.

وفي الإنتاج الحقيقي، نستهدف عنقودا مُدارا : فتشغيل عنقود بأنفسنا يقتضي فريقا. والقاعدة : التعلم محليا، والإنتاج مُدارا.

3. طبّق، وعاين، واكشف

طبّق الملف، واسرد البدات والنشر والخدمات، وصِل محليا. فالتحديث = تغيير وسم الصورة + إعادة التطبيق : تحديث متداول تلقائي مع رجوع ممكن. ويقتل إدير بدا ويراقب بعثه : فالمنسِّق يحفظ الحالة المصرح بها.

وانضباط الصور : وسوم ثابتة في ملفات YAML، وأبدا أي وسم متحرك في النشر — وإلا لم نعد نعرف ما الذي يعمل حقا.

خطأ شائع في الفهم: « كوبرنيتس (Kubernetes) هو مجرد دوكر (Docker) بكلمة أخرى — أضع وسمي المتحرك وأرقّع العنقود في الإنتاج ». لا. فكوبرنيتس (Kubernetes) تصريحي : نصف الحالة المرادة (النشر، والخدمة) ويحفظها العنقود — بدات سريعة الزوال من جهة، وعنوان مستقر من جهة أخرى. فالوسم المتحرك يكسر تتبع التحديثات، والعنقود المرقع دون فريق يصير غير قابل للتشغيل. والمنعكس الجيد : التعلم على عنقود محلي، ووسوم ثابتة، وإعادة توجيه منفذ للتطوير — والإنتاج مُدارا مع رجوع مجرَّب.
كوبرنيتس (Kubernetes) في الحد الأدنى صرّح، وطبّق، واحفظ النشر 3 بدات مرادةالبدات سريعة الزوال،معاد إنشاؤهاالخدمة عنوانمستقر أمامها
صرّح، وطبّق، واحفظ
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) النشر : يصرّح إدير في الجزائر بـ 3 بدات متماثلة مع وسم صورة ثابت. 2) البدات : تدور الأغلفة وتموت وتُبعَث — ويحفظ المتحكم العدد المراد. 3) الخدمة : يكشف عنوان مستقر المجموعة، ويُوصَل إليه محليا للتطوير. الدرس : صرّح بالمراد، وطبّق، ودع العنقود يحفظ — وحدّث بوسم جديد.

🔎 مثال ملموس — تطبيق إدير بـ 3 نسخ على عنقود محلي

صرّح، وطبّق، وصِل.

kubectl apply -f deploy.yaml
kubectl get pods
kubectl get deploy
kubectl get svc
kubectl port-forward svc/web 8080:80

القراءة : 3 بدات خلف عنوان مستقر، والوصول محليا.

الدرس : قتل بد يبعثه — فالحالة المرادة محفوظة.

مفردات القسم

البد
أصغر وحدة : الغلاف سريع الزوال لحاوية واحدة أو عدة حاويات.

مثال بسيط: يرى إدير بداته تولد وتموت وتُبعَث على عنقوده المحلي.

ما ليس كذلك: عنوان مستقر يُوصَل إليه دائما.

رد فعل: هل أصِل بدا أم خدمة ؟

النشر
المتحكم الذي يحفظ N من البدات المتماثلة ويدير تحديثاتها.

مثال بسيط: يصرّح إدير بـ 3 نسخ مكررة : فيُعاد إنشاء بد مقتول.

ما ليس كذلك: حاوية تُطلَق باليد دون متحكم.

رد فعل: كم نسخة مكررة صرحت ؟

الخدمة
العنوان المستقر أمام بدات قابلة للتبديل.

مثال بسيط: يصِل إدير إلى الخدمة، لا إلى البدات المتحركة.

ما ليس كذلك: العنوان المباشر لبد سريع الزوال.

رد فعل: ما الذي يبقى مستقرا عندما تتحرك البدات ؟

kubectl
العميل في سطر الأوامر الذي يقود العنقود.

مثال بسيط: يطبق إدير ويسرد ويفحص بـ kubectl.

ما ليس كذلك: فعل يدوي على كل حاوية.

رد فعل: هل يشير kubectl خاصتي إلى العنقود الصحيح ؟

الوسم الثابت
تسمية صورة ثابتة تعيّن إصدارا واحدا بالضبط.

مثال بسيط: يحدّث إدير بتغيير الوسم ثم إعادة التطبيق.

ما ليس كذلك: وسم متحرك يغير محتواه دون إنذار.

رد فعل: هل أعرف بالضبط أي إصدار يعمل ؟

في التطبيق — كوبرنيتس محليا

  1. أنشئوا عنقودا محليا (بأمر واحد).
  2. طبقوا النشر + الخدمة في النموذج أدناه.
  3. تحققوا من البدات الـ 3، وصِلوا عبر إعادة توجيه منفذ.
  4. اقتلوا بدا وراقبوا بعثه.
تلمسون الإصلاح الذاتي لكوبرنيتس (Kubernetes).

نص جاهز للقول — اقتراح مختبر كوبرنيتس

« لفهم كوبرنيتس (Kubernetes) دون خطر، أقترح مختبرا محليا في الجزائر : عنقود على آلتي، ونشر بـ 3 نسخ مكررة مع وسم ثابت، وخدمة يُوصَل إليها محليا. سنرى الإصلاح الذاتي بقتل بد — دون مس أي إنتاج، ودون أي فاتورة سحابة. »

يُقال للمرجع للمصادقة على التعلم محليا قبل أي مشروع عنقود.

نموذج للنسخ واللصق — نشر + خدمة عامان

كوبرنيتس عام — ملف deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: web
          image: mon-registre/mon-app:stable
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  selector:
    app: web
  ports:
    - port: 80
الأوامر : kubectl apply -f deploy.yaml · kubectl get pods · kubectl port-forward svc/web 8080:80

فردي / ميزانية صغيرة

إدير وحده : يكفي عنقود محلي مجاني — 3 نسخ مكررة، ووصول محلي.

شركة صغيرة جدا / فريق مصغر

عرض مشترك : أحدهما يقتل بدا، والآخر يعاين البعث.

شركة صغيرة ومتوسطة في الجزائر

يضبط إدير في الجزائر ورشة : فيطبق كل واحد التصريح على جهازه.

فريق يبدأ

ثنائي : أحدهما يكتب YAML، والآخر يتحقق من المحددات والوسوم قبل التطبيق.

✓ ممارسات جيدة

  • تعلموا على عنقود محلي، وأنتجوا على مُدار.
  • وسوم صور ثابتة في ملفات YAML.
  • إعادة توجيه منفذ للتطوير، وكشف حقيقي في الإنتاج.

✗ أخطاء شائعة

  • وسم متحرك في نشر (فلا نعود نعرف ما الذي يعمل).
  • عنقود مرقع في الإنتاج دون فريق لتشغيله.
  • الخلط بين البد سريع الزوال والخدمة المستقرة.

النقاط الأساسية

  • البد = غلاف سريع الزوال، والنشر = النسخ، والخدمة = عنوان مستقر.
  • نصرّح بـ YAML، فيطبق kubectl، ويحفظ العنقود.
  • التحديث = وسم جديد + إعادة تطبيق، ورجوع ممكن.
  • التعلم محليا، ووسوم ثابتة، والإنتاج مُدارا.

تحدي 48 ساعة — طبّق غدا

طبقوا النشر + الخدمة العامين (النموذج أعلاه) على عنقود محلي : 3 بدات مرئية، ووصول محلي ناجح، وبعث بعد حذف بد.

قائمة الخروج من القسم
  • أستطيع وصف البد والنشر والخدمة في جملة واحدة لكل منها.
  • نشري المحلي يعرض 3 بدات خلف خدمة.
  • أعرف التحديث بوسم جديد + إعادة تطبيق.
تقييم ذاتي 1-5 : هل أستطيع شرح الإصلاح الذاتي ؟هل وسوم صوري ثابتة ؟

أسئلة شائعة

هل نهاجر بكل شيء إلى كوبرنيتس (Kubernetes) بعد هذا الدليل ؟

لا : فهذا المستوى يعطي المفاتيح للفهم والقرار. وتبقى كثير من التطبيقات جيدة جدا على Compose أو سرب (Swarm) — فلا يعود كوبرنيتس (Kubernetes) مربحا إلا إذا بررت الحظيرة والفرق والمتطلبات (التحجيم التلقائي، والفرق المتعددة) ذلك.

بأي شهادة نبدأ بعد هذا الدليل ؟

عموما : أولا شهادة متمركزة على دوكر (Docker) تتوج هذا الدليل (الصور، والشبكات، والمجلدات، وCompose، وسرب (Swarm)، والأمن)، ثم شهادة كوبرنيتس (Kubernetes) إذا كان كوبرنيتس (Kubernetes) هدفكم. وتُحضَّر الاثنتان بمختبرات عملية، لا حفظا.

تحقّق من فهمك

يموت بد. ماذا يفعل النشر ؟

موارد إضافية (اختياري، للتعمّق أكثر)

اختبار المستوى 5أسئلة جديدة وأصعب للتحقق من مكتسباتك