Job لترحيل قاعدة البيانات قبل الترقية
أضف تعليقًا توضيحيًا إلى Job لتعمل قبل النشر
Job لترحيل قاعدة البيانات قبل الترقية درس مجاني في Helm Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Helm Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Helm Academy 4 دروس في المجموع.
حالة استخدام واقعية
قبل طرح رمز تطبيق جديد، غالبًا ما يحتاج مخطط قاعدة البيانات إلى الترحيل. ويُعد hook من نوع pre-upgrade مكانًا مثاليًا لتشغيل هذا الترحيل بأمان.
لماذا قبل الطرح
يعني تشغيله بوصفه pre-upgrade أن المخطط جاهز قبل بدء تشغيل Pods الجديدة. وبذلك لا يتصل الرمز الجديد بقاعدة بيانات قديمة وغير متوافقة.
"helm.sh/hook": pre-upgradeابدأ باستخدام Job
يعمل الترحيل مرة واحدة ثم ينتهي، لذا مثّله على هيئة Job في Kubernetes. وسينتظر Helm انتهاء Job قبل متابعة الترقية.
apiVersion: batch/v1
kind: Job
metadata:
name: db-migrateأضف تعليق hook التوضيحي
حدّد Job باعتباره hook في بياناته الوصفية. إن تعليق helm.sh/hook المعيّن على pre-upgrade هو ما يحوّل Job العادي هذا إلى hook.
metadata:
annotations:
"helm.sh/hook": pre-upgradeشغّل أمر الترحيل
تشغّل حاوية Job أداة الترحيل الخاصة بك. وجّهها إلى قاعدة البيانات نفسها التي يستخدمها التطبيق حتى تصل تغييرات المخطط إلى المكان الصحيح.
spec:
containers:
- name: migrate
image: myapp:1.4
command: ["./migrate", "up"]لا تعِد التشغيل عند الفشل
اضبط restartPolicy الخاص بـ Job على Never أو OnFailure. فالترحيل الذي يستمر في التكرار إلى ما لا نهاية سيعطل ترقيتك ولن يسمح لـ Helm بالمتابعة.
spec:
template:
spec:
restartPolicy: Neverأنشئ قالبًا لوسم الصورة
حافظ على توافق أداة الترحيل مع التطبيق عبر إنشاء قالب لوسمها. أعد استخدام .Values.image.tag نفسه الذي يقرأه النشر حتى تتطابق الإصدارات.
image: "myapp:{{ .Values.image.tag }}"يوقف Helm العملية حتى الاكتمال
بما أنه hook من نوع pre-upgrade، يوقف Helm الترقية مؤقتًا حتى يبلغ Job عن نجاحه. وإذا فشل الترحيل، فلن يحدث الطرح. 🛑
نظّف بعد النجاح
وإلا فستتراكم Jobs الترحيل القديمة. اربط hook بـ hook-delete-policy حتى تتم إزالة Job الناجح بدلًا من إحداث فوضى في مساحة الأسماء.
"helm.sh/hook-delete-policy": hook-succeededتساعد الأسماء الفريدة
لا يمكن تعديل Hook Jobs بعد إنشائها، لذلك قد يتعارض الاسم الثابت مع الترقية التالية. ويضمن تضمين .Release.Revision في الاسم تميّز كل عملية تشغيل.
name: db-migrate-{{ .Release.Revision }}اختبر باستخدام تشغيل تجريبي
قبل إجراء ترقية حقيقية، صيّر المخطط للتأكد من أن hook يبدو صحيحًا. يعرض dry-run بيان Job الذي سينشئه Helm دون لمس العنقود.
helm upgrade myapp ./mychart --dry-runتحقق سريع
تحتاج إلى تشغيل ترحيل مخطط قاعدة البيانات قبل بدء تشغيل Pods التطبيق الجديدة أثناء الترقية.
مراجعة
مثّلت الترحيل على هيئة Job من نوع pre-upgrade، وضبطت restartPolicy على Never، وتركت Helm يوقف العملية حتى نجاحها قبل طرح الرمز الجديد. 🗄️
الأسئلة الشائعة
هل درس «Job لترحيل قاعدة البيانات قبل الترقية» مجاني؟
نعم — نص درس «Job لترحيل قاعدة البيانات قبل الترقية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Helm Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Helm Academy 4 دروس في المجموع.
ماذا ستتعلم في «Job لترحيل قاعدة البيانات قبل الترقية»؟
أضف تعليقًا توضيحيًا إلى Job لتعمل قبل النشر تتمرن على Helm Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Helm Academy؟
لا تُشترط خبرة سابقة. Helm Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «Job لترحيل قاعدة البيانات قبل الترقية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Helm Academy هذا؟
نعم. كل درس في Helm Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما هي Hooks ومتى تعمل
- Job لترحيل قاعدة البيانات قبل الترقية
- أوزان Hooks وترتيبها
- سياسات حذف Hooks