Kubit logoكوبيت

ما 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 غير معروف أو إصدار جديد:

  1. تحقق من جهة نشر Chart والجهة التي تصونه.
  2. اقرأ تغييرات الإصدار والقيم الافتراضية.
  3. راجع المخرجات وقارنها مع Release الحالي.
  4. لا تحفظ البيانات الحساسة كنص واضح في values أو Git.
  5. قيّد صلاحيات service account والموارد على مستوى cluster بالحد الأدنى المطلوب.

الخطوات التالية

مراجع إضافية

Helm وHelm Chart في Kubernetes | المستندات | كوبيت