0Pricing
Kubernetes Basics · درس

حاويات Init وترتيب بدء التشغيل

تعلّموا كيف تنفّذ حاويات init مهام الإعداد قبل بدء حاويات التطبيق الرئيسية، وكيف تفرض الترتيب داخل Pod

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

ما هي حاويات التهيئة؟

حاوية التهيئة هي حاوية خاصة تعمل حتى الاكتمال قبل بدء حاويات التطبيق الرئيسية في Pod. ويمكن أن تحتوي Pods على حاوية تهيئة واحدة أو أكثر.

وهي مناسبة جداً لمهام الإعداد التي تُنفَّذ مرة واحدة، مثل انتظار تبعية أو استنساخ الإعدادات أو تشغيل ترحيل قاعدة البيانات.

كيف تختلف عن حاويات التطبيق

تعمل حاويات التهيئة دائماً حتى الاكتمال، ويجب أن تنجح قبل بدء الحاوية التالية. أما حاويات التطبيق فتعمل باستمرار.

  • تعمل حاويات التهيئة بالتتابع، واحدة في كل مرة
  • تعمل حاويات التطبيق بالتوازي
  • إذا فشلت حاوية تهيئة، يعيد Pod تشغيلها وفقاً لـ restartPolicy

مواصفة أساسية لحاوية تهيئة

توجد حاويات التهيئة ضمن spec.initContainers، وهو حقل شقيق لـ spec.containers.

apiVersion: v1
kind: Pod
metadata:
  name: app-with-init
spec:
  initContainers:
  - name: wait-for-db
    image: busybox:1.36
    command: ['sh', '-c', 'echo waiting; sleep 5']
  containers:
  - name: app
    image: nginx:1.27

أهمية الترتيب

يضمن Kubernetes الترتيب التالي: يجب أن تنتهي كل حاوية تهيئة بنجاح قبل أن تبدأ الحاويات الرئيسية.

يسمح لك ذلك بالتعبير عن التبعيات بشكل تصريحي بدلاً من تضمين حلقات إعادة المحاولة داخل صورة التطبيق.

انتظار خدمة

من الأنماط الشائعة منع بدء التشغيل حتى تستجيب Service تابعة.

initContainers:
- name: wait-for-api
  image: busybox:1.36
  command:
  - sh
  - -c
  - 'until nslookup api-service; do echo waiting; sleep 2; done'

حاويات تهيئة متعددة

يمكنك ربط عدة حاويات تهيئة. فهي تعمل بالترتيب المدرج، بحيث تكتمل كل واحدة منها بالكامل قبل بدء التالية.

initContainers:
- name: step-1-fetch-config
  image: busybox:1.36
  command: ['sh', '-c', 'echo fetching config']
- name: step-2-migrate
  image: busybox:1.36
  command: ['sh', '-c', 'echo running migration']

مشاركة البيانات باستخدام emptyDir

غالباً ما تجهّز حاويات التهيئة الملفات لحاوية التطبيق باستخدام وحدة تخزين مشتركة من النوع emptyDir.

volumes:
- name: shared
  emptyDir: {}
initContainers:
- name: setup
  image: busybox:1.36
  command: ['sh', '-c', 'echo hello > /work/index.html']
  volumeMounts:
  - name: shared
    mountPath: /work

فحص حالة التهيئة

أثناء تشغيل حاويات التهيئة، يعرض Pod حالة مثل Init:0/2. استخدم kubectl لمتابعة التقدم.

kubectl get pod app-with-init
kubectl logs app-with-init -c wait-for-db
kubectl describe pod app-with-init

قواعد استخدام الموارد

نظراً إلى أن حاويات التهيئة تعمل بالتتابع، يستخدم Kubernetes أعلى طلب أو حد للموارد بينها (وليس مجموعها) عند الجدولة، ثم يقارنه باحتياجات حاويات التطبيق.

حالات الاستخدام الشائعة

  • انتظار إتاحة قاعدة بيانات أو API خارجية
  • تشغيل عمليات ترحيل المخطط قبل إقلاع التطبيق
  • إنشاء ملفات الإعداد أو تنزيلها
  • ضبط أذونات الملفات على وحدة تخزين موصّلة
  • تسجيل Pod لدى سجل خدمات

سلوك الفشل

إذا فشلت حاوية تهيئة وكان restartPolicy الخاص بـ Pod هو Always أو OnFailure، فسيستمر Kubernetes في إعادة المحاولة حتى تنجح. ولن تبدأ الحاويات الرئيسية قبل ذلك.

تحقق سريع

اختبر مدى فهمك لترتيب حاويات التهيئة.

مراجعة

تعلّمت أن حاويات التهيئة تعمل بالتتابع حتى الاكتمال قبل بدء حاويات التطبيق. وهي تفرض ترتيب بدء التشغيل، وتجهّز البيانات المشتركة عبر وحدات التخزين، وتتولى إعدادات تُنفَّذ مرة واحدة مثل عمليات الترحيل أو فحوصات التبعيات.

يمكنك بعد ذلك الجمع بين حاويات التهيئة وحاويات sidecar لإنشاء أنماط أكثر تطوراً لبدء تشغيل Pod.

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

هل درس «حاويات Init وترتيب بدء التشغيل» مجاني؟

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

ماذا ستتعلم في «حاويات Init وترتيب بدء التشغيل»؟

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

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

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

كم من الوقت يستغرق درس «حاويات Init وترتيب بدء التشغيل»؟

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

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

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

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

  1. الوحدات: أصغر وحدة
  2. دورة حياة الوحدة وحالاتها
  3. وحدات متعددة الحاويات (Sidecars)
  4. حاويات Init وترتيب بدء التشغيل
← العودة إلى Kubernetes Basics