محتويات الدورة

Helm / متوسط: عقود التأليف ودورة الحياة / الدرس 12

الخطافات واختبارات الحزمة والآثار الجانبية

نمذج خطافات دورة الحياة وموارد الاختبار كأحمال حقيقية لها عقود ترتيب وتنظيف وآثار جانبية بدلا من معاملاتها كمعاملات نشر سحرية.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • شرح أوصاف الخطافات وترتيبها النسبي.
  • تصميم أفعال قابلة للتكرار دون مضاعفة الأثر وتنظيف يحفظ الدليل.
  • فصل اختبارات الحزمة عن تأكيدات التصيير دون اتصال.

عامل الخطافات كأحمال

الخطافات موارد Kubernetes تنتجها القوالب وتوصف لنقاط محددة مثل pre-upgrade وpost-install. ما زالت مهمة Job تحتاج صورة وسعة جدولة وصلاحيات ومدخلات وشرط اكتمال ذي معنى، وقد تفشل مستقلة عن الموارد العادية. لا يستطيع خطاف pre-install افتراض وجود Service عادي من الإصدار نفسه لأن موقعه أسبق. اختر الخطاف بعد رسم الاعتماديات. وللتحقق من إعداد يمكن فحصه دون اتصال، يكون فحص مخطط محلي أسهل فهما من إنشاء حمل لمجرد اكتشاف مدخل خاطئ.

اقرأ بيانات الخطاف بدقة

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

yaml مقطع أوصاف خطاف
metadata:
  name: catalog-validate-input
  annotations:
    helm.sh/hook: pre-upgrade
    helm.sh/hook-weight: "-10"
    helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded

الاسم والفعل افتراضيان. لا توجد مواصفات Job أو صورة أو أمر، لذلك يخص المثال مراجعة البيانات فقط.

صمم التكرار والتنظيف معا

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

افصل طبقات الاختبار

اختبار حزمة Helm مورد خطاف يُستدعى لإصدار ويحكم عادة على نجاح خروج حاوية. يعمل في بيئة وقد يستخدم اعتماديات فعلية بخلاف تأكيد تصيير محلي. فحص منفذ مفتوح أضعف من فحص استجابة كتالوج ذات معنى، وقد ينجح كلاهما مع خطأ تفويض البيانات. المثال الثاني مصنف Python مجرد لنتائج افتراضية وليس اختبار Helm. يوضح الحاجة إلى النظر في نجاح الخروج والمحتوى المتوقع معا عند تعريف تأكيد تطبيق مفيد.

python تأكيد تطبيق افتراضي
cases = [(0, "catalog-ready"), (0, "wrong-page"), (1, "catalog-ready")]
for exit_code, body in cases:
    print(exit_code == 0 and body == "catalog-ready")
الناتج المتوقع
True
False
False

تحقق الحالة الأولى الشرطين وتفشل الأخريان. لا يستخدم المثال طلب HTTP أو حاوية أو عنقودا.

سجل الترتيب والدليل

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

الأخطاء الشائعة وإصلاحها

انتظار خطاف pre-install لخدمة عادية من الإصدار

لماذا يحدث؟
يقع الاعتماد بعد مرحلة الخطاف.
كيف تصلحه؟
أعد تصميم المرحلة أو أزل الاعتماد الدائري.
كيف تتجنب تكراره؟
ارسم الشروط المسبقة قبل تعيين الأوصاف.

تطبيق التغيير نفسه مرتين عند إعادة الترحيل

لماذا يحدث؟
افتقر الفعل لعقد تكرار يراعي التطبيق.
كيف تصلحه؟
صمم ترحيلا بمعاملة أو فحص نسخة وقيّم النتائج غير المؤكدة.
كيف تتجنب تكراره؟
راجع نوافذ التكرار والآثار الخارجية مستقلة عن حالة Helm.

اعتبار نجاح TCP تحققا كاملا من التطبيق

لماذا يحدث؟
حل الوصول محل فحص معنى الاستجابة والتفويض.
كيف تصلحه؟
حدد تأكيدا افتراضيا للتطبيق بسلوك متوقع دقيق.
كيف تتجنب تكراره؟
اذكر نطاق كل اختبار وحدوده.

اختبر فهمك

1. لماذا قد يُحتفظ بخطاف فاشل مع تنظيف الناجح؟

اعرض الحل المشروح

قد يحفظ المورد الفاشل الدليل اللازم لتمييز فشل الصورة والجدولة والصلاحيات والتطبيق. ويمكن إزالة الناجح بعد حفظ الدليل المطلوب. يجب أن يحترم الاحتفاظ حساسية البيانات والسياسة التشغيلية. تعبر أوصاف الحذف عن سلوك دورة حياة مختار ولا تستبدل خطة احتفاظ تشخيصية صريحة.

2. انتهت مهلة خطاف بعد تغيير خارجي. هل تكون إعادته آمنة تلقائيا؟

اعرض الحل المشروح

لا. قد تترك المهلة العميل غير متأكد مع اكتمال الأثر بالفعل. أثبت نتيجة التطبيق من مصدر دليل مصرح به، ثم طبق عقد التكرار أو الاسترجاع الموثق للفعل. لا يجعل وزن الخطاف أو سياسة حذفه عملية خارجية غير قابلة للتكرار آمنة للإعادة.

أهم ما تعلمته

  • الخطافات واختبارات الحزمة أحمال قابلة للتنفيذ لها التزامات دورة حياة ودليل.
  • لا يضمن الترتيب والتنظيف قابلية التكرار أو عكس الآثار الخارجية.

المراجع الرسمية