أساسيات Helm
عند نشر التطبيقات وتعيين إصدارها وتحديثها، تحتاج إلى التأكد من أن لديك الإصدارات الصحيحة من مكتبات البرامج والتكوينات بحيث يعمل التطبيق كما هو متوقع.
لنفترض أن فريق التطوير الخاص بك يقرر نشر موقع شركة متجر الحيوانات الأليفة على Kubernetes. كجزء من العملية، يقوم فريقك بإنشاء ملفات تستند إلى YAML للتوزيع والخدمة والدخول. يمكنك ترميز المعلومات في كل ملف والحفاظ عليها لكل بيئة مستهدفة يدويا. ومع ذلك، فإن الاحتفاظ بثلاثة ملفات لكل بيئة مرهق ويزيد من التعقيد مع نمو التطبيق.
يمكنك استخدام Helm لتبسيط عملية توزيع التطبيق وتجنب متغيرات التوزيع والإعدادات المحددة بتعليمة برمجية ثابتة.
ما هو Helm؟
Helm هو مدير حزمة لـ Kubernetes الذي يجمع بين كل موارد التطبيق ومعلومات التوزيع في حزمة توزيع واحدة.
يمكنك التفكير في Helm بشكل مشابه مدير حزم Windows على Windows أو أداة الحزمة المتقدمة (apt) على Linux أو Homebrew على macOS. يمكنك تحديد اسم التطبيق الذي تريد تثبيته أو تحديثه أو إزالته وسيهتم Helm بالعملية.
باستخدام Helm، لا تقتصر على تثبيت تطبيق واحد في كل مرة. يسمح لك Helm بإنشاء ملفات البرنامج النصي YAML لتوفير قالب ويمكن قراءتها بالعين لإدارة توزيع تطبيقك. تسمح لك ملفات القالب هذه بتحديد كل التبعيات المطلوبة وتعيين التكوين والأسرار المستخدمة لإدارة توزيع أحد التطبيقات بنجاح.
يستخدم Helm أربعة مكونات لإدارة عمليات نشر التطبيقات على مجموعة Kubernetes:
- عميل Helm
- مخططات Helm
- إصدارات Helm
- مستودعات Helm
ما هو عميل Helm؟
عميل Helm هو عميل مثبت ثنائي مسؤول عن إنشاء ملفات البيان المطلوبة وإرسالها لنشر تطبيق Kubernetes. العميل هو المسؤول عن التفاعل بين المستخدم ونظام مجموعة Kubernetes.
يتوفر عميل Helm لكل أنظمة التشغيل الرئيسية ويتم تثبيته على كمبيوتر العميل. في Azure، يتم تثبيت عميل Helm مسبقا في Cloud Shell ويدعم جميع ميزات الأمان والهوية والتخويل ل Kubernetes.
إشعار
تفترض هذه الوحدة استخدام Helm v3. يمكنك تشغيل helm version
الأمر للتحقق من إصدار Helm الذي يعمل على جهاز العميل الخاص بك. إذا كنت تقوم بتشغيل الإصدار 2 من Helm، فضع في اعتبارك أن بعض معلمات الأمر في هذه الوحدة ستكون مختلفة.
ما هو مخطط Helm؟
مخطط Helm هو حزمة توزيع ذات قالب تصف مجموعة ذات صلة من موارد Kubernetes. يحتوي على كل المعلومات المطلوبة لإنشاء ملفات البيان وتوزيعها لتطبيق يتم تشغيله على نظام مجموعة Kubernetes.
يتكون مخطط Helm من عدة ملفات ومجلدات لوصف المخطط. بعض المكونات مطلوبة وبعضها اختياري. يعتمد ما تختار تضمينه على متطلبات تكوين التطبيقات.
تصف القائمة التالية مكونات الملف والمجلد لمخطط Helm مع العناصر المطلوبة بخط غامق:
ملف / مجلد | الوصف |
---|---|
Chart.yaml |
ملف YAML يحتوي على معلومات حول المخطط. |
values.yaml |
قيم التكوين الافتراضية للمخطط. |
templates/ |
مجلد يحتوي على قوالب التوزيع للمخطط. |
LICENSE |
ملف نص عادي يحتوي على ترخيص المخطط. |
README.md |
ملف markdown يحتوي على إرشادات حول كيفية استخدام المخطط. |
values.schema.json ** |
ملف مخطط لتطبيق بنية على ملف values.yaml. |
charts/ |
مجلد يحتوي على كل المخططات الفرعية للمخطط الرئيسي. |
crds/ |
تعريفات الموارد المخصصة. |
templates/Notes.txt |
ملف نصي يحتوي على ملاحظات استخدام القالب. |
ما هو إصدار Helm؟
إصدار Helm هو التطبيق أو مجموعة التطبيقات المنشورة باستخدام مخطط. في كل مرة تقوم بتثبيت مخطط، يتم إنشاء مثيل جديد من تطبيق على نظام المجموعة. يحتوي كل مثيل على اسم إصدار يسمح لك بالتفاعل مع مثيل التطبيق المحدد.
على سبيل المثال، لنفترض أنك قمت بتثبيت مثيلين Nginx على مجموعة Kubernetes باستخدام مخطط. لاحقًا، تقرر ترقية مثيل Nginx الأول ولكن ليس الثاني. وحيث إن الإصدارين مختلفان، يمكنك ترقية الإصدار الأول دون التأثير على الثاني.
ما هو مستودع Helm؟
مستودع Helm هو خادم HTTP مخصص يخزن المعلومات على مخططات Helm. يستضيف الخادم ملفا يصف المخططات ومكان تنزيل كل مخطط.
يستضيف مشروع Helm العديد من المخططات العامة، وتوجد العديد من المستودعات التي يمكنك إعادة استخدام مخططاتها. مستودعات Helm تبسط إمكانية اكتشاف حزم Helm وإعادة استخدامها.
فوائد استخدام Helm
يقدم Helm عددًا من المزايا التي تُبسّط توزيع التطبيقات وتحسّن الإنتاجية في دورة حياة التطوير والتوزيع للتطبيقات الأصلية التي تعمل على السحابة. مع Helm، لديك إصدارات التطبيق هذه:
- التكرار
- موثوق بها
- يمكن إدارتها في بيئات متعددة ومعقدة، و
- قابلة لإعادة الاستخدام عبر فرق التطوير المختلفة.
يقوم مخطط Helm بتوحيد توزيع تطبيق باستخدام منطق القالب المجمع الذي تم تحديد معلمات له عن طريق تعيين قيم الإدخال. يوفر تصميم الحزمة المستند إلى القالب نهجا غير محدد للبيئة لنشر التطبيقات الأصلية السحابية ومشاركتها.