0Pricing
Helm Academy · درس

قالب Deployment بسيط

حوّل بيانًا ثابتًا إلى قالب Chart

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

من بيان ثابت إلى قالب

المخطط مجرد مجلد من القوالب. وكل قالب هو ملف بيان لـKubernetes يحتوي على عناصر نائبة يملؤها Helm وقت التثبيت.

ابدأ بـDeployment عادي

قبل إضافة أي سحر، اكتب ملف البيان الذي تعرفه مسبقًا. إليك Deployment ثابتًا يشغّل Pod واحدًا من nginx.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app

ضعه في templates

احفظ الملف باسم templates/deployment.yaml داخل مخططك. يُصيَّر كل ما يوجد في templates ويُرسل إلى العنقود.

اسم الإصدار ديناميكي

إن كتابة الاسم بشكل ثابت أمر هش. يوفّر Helm اسم الإصدار عبر .Release.Name، ولذلك يحصل كل تثبيت على هوية فريدة.

metadata:
  name: {{ .Release.Name }}

اجلب القيم من values.yaml

توجد الإعدادات التي قد يغيّرها المستخدمون في values.yaml، وتُقرأ عبر .Values. وهذا يجعل عدد النسخ المتماثلة قابلًا للضبط بدلًا من كونه ثابتًا.

spec:
  replicas: {{ .Values.replicaCount }}

حدّد القيمة الافتراضية

لكي يتم تقييم .Values.replicaCount، حدّد له قيمة افتراضية في values.yaml. ويمكن للمستخدمين تجاوزها لاحقًا من دون تعديل القوالب.

# values.yaml
replicaCount: 1

يجب أن تتطابق المحددات مع التسميات

يجب أن يتطابق selector في Deployment تمامًا مع تسميات قالب Pod، وإلا فسيرفضه Kubernetes. أعِد استخدام تسمية واحدة متسقة في كل المواضع.

selector:
  matchLabels:
    app: {{ .Release.Name }}

قسم قالب Pod

داخل spec.template تصف Pod الفعلية: تسمياتها والحاويات الموجودة فيها. هذا هو حمل العمل الذي سيرسله Helm إلى العنقود.

template:
  metadata:
    labels:
      app: {{ .Release.Name }}
  spec:
    containers: []

أضف الحاوية

تحتاج كل حاوية إلى name وimage. في الوقت الحالي تكون image محددة مباشرةً، وستحوّلها إلى قيمة قابلة للتهيئة في الدرس التالي.

containers:
  - name: app
    image: nginx:1.27

اعرض القالب للتحقق من عملك

شغّل helm template . لرؤية YAML النهائي الذي ينتجه Helm محليًا، من دون الحاجة إلى عنقود. اقرأه قبل التثبيت.

helm template my-release .

القالب الكامل الأدنى

تشكل هذه الأجزاء معًا قالب Deployment صغيرًا لكنه حقيقي: الاسم والتسميات مستمدان من الإصدار، وعدد النسخ مستمد من values.

spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ .Release.Name }}

تحقق سريع

أي كائن مضمّن يمنحك الاسم الفريد للإصدار المثبّت؟

مراجعة: قالبك الأول

حوّلت Deployment ثابتًا إلى قالب: يستخدم .Release.Name للهوية و.Values للإعدادات. استخدم helm template للعرض والتحقق. 🎉

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

هل درس «قالب Deployment بسيط» مجاني؟

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

ماذا ستتعلم في «قالب Deployment بسيط»؟

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

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

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

كم من الوقت يستغرق درس «قالب Deployment بسيط»؟

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

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

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

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

  1. قالب Deployment بسيط
  2. تخصيص صورة الحاوية بالمعلمات
  3. إضافة قالب Service
  4. تثبيت Chart وتطويرها تكراريًا
← العودة إلى Helm Academy