أساسيات Helm

مكتمل

عند نشر التطبيقات وتعيين إصدارها وتحديثها، تحتاج إلى التأكد من أن لديك الإصدارات الصحيحة من مكتبات البرامج والتكوينات بحيث يعمل التطبيق كما هو متوقع.

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

A diagram that shows a container deployed to a Kubernetes node using a deployment, a service, and an ingress YAML file.

يمكنك استخدام Helm لتبسيط عملية توزيع التطبيق وتجنب متغيرات التوزيع والإعدادات المحددة بتعليمة برمجية ثابتة.

ما هو Helm؟

Helm هو مدير حزمة لـ Kubernetes الذي يجمع بين كل موارد التطبيق ومعلومات التوزيع في حزمة توزيع واحدة.

A diagram shows a containerized app deployed to a Kubernetes cluster using a Helm chart.

يمكنك التفكير في Helm بشكل مشابه مدير حزم Windows على Windows أو أداة الحزمة المتقدمة (apt) على Linux أو Homebrew على macOS. يمكنك تحديد اسم التطبيق الذي تريد تثبيته أو تحديثه أو إزالته وسيهتم Helm بالعملية.

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

يستخدم Helm أربعة مكونات لإدارة عمليات نشر التطبيقات على مجموعة Kubernetes:

  • عميل Helm
  • مخططات Helm
  • إصدارات Helm
  • مستودعات Helm

ما هو عميل Helm؟

عميل Helm هو عميل مثبت ثنائي مسؤول عن إنشاء ملفات البيان المطلوبة وإرسالها لنشر تطبيق Kubernetes. العميل هو المسؤول عن التفاعل بين المستخدم ونظام مجموعة Kubernetes.

A diagram shows the communication between three Helm components to create a Helm release; the client, chart, and repository.

يتوفر عميل 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 هو التطبيق أو مجموعة التطبيقات المنشورة باستخدام مخطط. في كل مرة تقوم بتثبيت مخطط، يتم إنشاء مثيل جديد من تطبيق على نظام المجموعة. يحتوي كل مثيل على اسم إصدار يسمح لك بالتفاعل مع مثيل التطبيق المحدد.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The release is highlighted.

على سبيل المثال، لنفترض أنك قمت بتثبيت مثيلين Nginx على مجموعة Kubernetes باستخدام مخطط. لاحقًا، تقرر ترقية مثيل Nginx الأول ولكن ليس الثاني. وحيث إن الإصدارين مختلفان، يمكنك ترقية الإصدار الأول دون التأثير على الثاني.

ما هو مستودع Helm؟

مستودع Helm هو خادم HTTP مخصص يخزن المعلومات على مخططات Helm. يستضيف الخادم ملفا يصف المخططات ومكان تنزيل كل مخطط.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The repository is highlighted.

يستضيف مشروع Helm العديد من المخططات العامة، وتوجد العديد من المستودعات التي يمكنك إعادة استخدام مخططاتها. مستودعات Helm تبسط إمكانية اكتشاف حزم Helm وإعادة استخدامها.

فوائد استخدام Helm

يقدم Helm عددًا من المزايا التي تُبسّط توزيع التطبيقات وتحسّن الإنتاجية في دورة حياة التطوير والتوزيع للتطبيقات الأصلية التي تعمل على السحابة. مع Helm، لديك إصدارات التطبيق هذه:

  • التكرار
  • موثوق بها
  • يمكن إدارتها في بيئات متعددة ومعقدة، و
  • قابلة لإعادة الاستخدام عبر فرق التطوير المختلفة.

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