ما Helm وما Helm Chart؟
Helm هو مدير الحزم في Kubernetes. يجمع الموارد المرتبطة بالتطبيق في حزمة تسمى Helm Chart حتى يمكن تثبيتها وإعدادها وترقيتها والرجوع إلى إصدار سابق كوحدة واحدة.
في Kubit، يحدد Pack ملف Chart وإصداره وقيمه. ويطبّق Pack Operator هذا التعريف على موارد Kubernetes ويحافظ على توافق حالة التثبيت.
ما Helm؟
يتطلب تثبيت تطبيق في Kubernetes عادة موارد مثل Deployment وService وConfigMap وIngress. يجمع Helm هذه الملفات حتى يمكن تثبيت التطبيق وإدارته بإعدادات مختلفة في بيئات متعددة.
لـ Helm ثلاثة مفاهيم رئيسية:
| المفهوم | التعريف |
|---|---|
| Chart | حزمة ذات إصدار تحتوي على templates والقيم الافتراضية وبيانات التثبيت |
| Repository | مكان حفظ ملفات Chart ونشرها |
| Release | نسخة واحدة مثبتة من Chart في Kubernetes cluster |
يمكن تثبيت Chart أكثر من مرة بأسماء وإعدادات مختلفة، وينشئ كل تثبيت Release مستقلا.
ما Helm Chart؟
Helm Chart حزمة قابلة للتثبيت لتطبيق أو خدمة أو أداة تعمل على Kubernetes. بدلا من تكرار ملفات الموارد، يستقبل Chart الأجزاء المتغيرة كقيم ويستخدم templates لإنتاج ملف Kubernetes YAML النهائي.
تتضمن البنية المعتادة Chart.yaml للبيانات الوصفية وvalues.yaml للقيم الافتراضية ومجلد templates/ للقوالب ومجلد charts/ الاختياري للتبعيات.
إصدار Chart ليس إصدار التطبيق نفسه. يصف إصدار Chart تغييرات الحزمة والقوالب، بينما يسجل إصدار التطبيق عادة في appVersion أو قيم container image.
عمل values وtemplates
Values هي مدخلات Chart القابلة للتغيير، مثل اسم container image وعدد replicas والموارد أو domain. يدمج Helm هذه القيم مع templates وينشئ ملفات Kubernetes النهائية.
تأتي القيم الافتراضية من values.yaml ويمكن تجاوزها عند التثبيت أو الترقية. في Pack، يوفر spec.values وspec.vars إعداد تثبيت محدد.
افحص المخرجات قبل تطبيق التغيير. يعرض kubit helm-template الملفات النهائية، ويقارنها kubit helm-diff مع Release الحالي.
ما Helm Release؟
Helm Release هو نتيجة تثبيت Chart بمجموعة محددة من القيم في cluster. يحتفظ Helm بسجل الإصدارات حتى يمكن الترقية أو الرجوع.
في Kubit، يرتبط كل مورد Pack بـ Helm Release في namespace نفسه. يحدد اسم Pack اسم Release، وقد تؤدي تغييرات تعريف Pack إلى ترقية Release الحالي.
مستودع Chart وإصداره
تُنزّل ملفات Chart من مستودع Helm أو registry متوافق مع OCI. يحدد ClusterPackRepository مورد المستودع في Pack، ويحتوي spec.chart على اسم Chart وقيد الإصدار. راجع اختيار نطاق المستودع.
حدد إصدارا أو نطاق إصدار واضحا في بيئة production، ولا تفعّل الترقية التلقائية إلا بعد مراجعة تغييرات الإصدار.
علاقة Helm بـ Pack
يوفر Helm منطق الحزمة والقوالب. ويحفظ Pack حالة التثبيت المطلوبة كمورد Kubernetes، بينما يوفّق Pack Operator هذه الحالة مع cluster باستمرار.
| المكوّن | المسؤولية |
|---|---|
| Helm Chart | تعريف templates والقيم الافتراضية وتبعيات التطبيق |
| Pack | اختيار المستودع وChart والإصدار وقيم التثبيت |
| Pack Operator | المعالجة والتحقق والتثبيت أو الترقية وتسجيل الحالة |
| Kubchi | واجهة اللوحة للتثبيت والإعداد وعرض النتيجة |
kubit-cli | فحص مخرجات Helm وتنفيذ عمليات Pack المتخصصة |
يرى معظم المستخدمين هذا المسار من Kubchi > Packs. للتثبيت من اللوحة، راجع تثبيت Pack في Kubchi. ولإنشاء المورد مباشرة أو إدارته، راجع مرجع Pack.
مراجعة Chart قبل التثبيت
يمكن لقوالب Chart إنشاء موارد متعددة أو تعديلها ضمن الصلاحيات المتاحة. قبل استخدام Chart غير معروف أو إصدار جديد:
- تحقق من جهة نشر Chart والجهة التي تصونه.
- اقرأ تغييرات الإصدار والقيم الافتراضية.
- راجع المخرجات وقارنها مع Release الحالي.
- لا تحفظ البيانات الحساسة كنص واضح في
valuesأو Git. - قيّد صلاحيات service account والموارد على مستوى cluster بالحد الأدنى المطلوب.
الخطوات التالية
- إنشاء مورد Pack وإدارته
- إضافة إمكانات Pack إلى Helm Chart
- إنشاء migration بين إصدارات Chart
- فهم دورة Pack Operator
- فحص مخرجات Helm باستخدام kubit-cli
- عرض ملفات Chart الجاهزة في Kubit (بالإنجليزية)