ديف أوبس

تثبيت البرمجيات باستخدام Helm في Kubernetes

تثبيت البرمجيات ضمن عناقيد Kubernetes باستخدام مدير الحزم Helm

مقدمة

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

ما هو Helm؟

Helm هو أداة مفتوحة المصدر تهدف إلى تبسيط إدارة تطبيقات Kubernetes عبر حزم تُسمى “Charts”. الـ Helm Chart هو عبارة عن مجموعة من الملفات التي تُعرّف كيفية تثبيت وتكوين تطبيقات Kubernetes. يمكن أن يحتوي Helm Chart على ملفات YAML مختلفة تحتوي على تفاصيل الإعدادات الخاصة بالبرمجيات، وأيضًا على معلمات يمكن تخصيصها أثناء التثبيت.

باستخدام Helm، يمكن للمطورين والمسؤولين عن الأنظمة بسهولة:

  • تثبيت التطبيقات المعقدة على Kubernetes.

  • تحديث التطبيقات بطريقة منهجية.

  • إدارة الإصدارات المختلفة للتطبيقات.

  • إزالة التطبيقات بطريقة سلسة.

لماذا نستخدم Helm؟

هناك العديد من الأسباب التي تجعل Helm أداة مثالية لإدارة البرمجيات ضمن Kubernetes:

  1. تبسيط النشر: يسمح Helm بتجميع مكونات التطبيقات في ملفات مُهيكلة يمكن إعادة استخدامها وتخصيصها.

  2. التحديثات السهلة: مع Helm، يمكن تحديث التطبيقات بمرونة عبر التحكم بالإصدارات.

  3. إدارة الإعدادات: يمكن تخصيص الإعدادات بسهولة باستخدام ملفات YAML، مما يوفر تخصيصًا دقيقًا للمكونات.

  4. الاستقرار: يُساعد Helm في إدارة النسخ المختلفة من التطبيقات وإصدار التحديثات بطريقة آمنة.

  5. الأمان: يسهم Helm في ضمان نشر التطبيقات بشكل صحيح ومتسق، مما يقلل من احتمالية حدوث أخطاء بشرية.

متطلبات أساسية قبل البدء

قبل البدء في استخدام Helm، هناك بعض المتطلبات الأساسية التي يجب أن تتوفر في بيئة العمل:

  1. Kubernetes Cluster: يجب أن يكون لديك مجموعة Kubernetes مُهيئة وجاهزة للاستخدام. يمكن أن تكون هذه البيئة محلية أو مستضافة في السحابة.

  2. أداة Helm: تحتاج إلى تثبيت Helm على جهازك. يمكن تثبيت Helm باستخدام أدوات إدارة الحزم مثل Homebrew على macOS أو Chocolatey على Windows.

  3. صلاحيات الإدارة: يجب أن يكون لديك صلاحيات الإدارة في Kubernetes حتى تتمكن من تثبيت البرمجيات وإدارتها باستخدام Helm.

تثبيت Helm

أول خطوة هي تثبيت Helm على جهازك. فيما يلي طريقة التثبيت عبر مختلف الأنظمة:

على macOS

bash
brew install helm

على Linux

bash
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

على Windows

bash
choco install kubernetes-helm

إعداد Helm لاستخدامه مع Kubernetes

بمجرد تثبيت Helm، يجب أن تقوم بتهيئته ليتواصل مع مجموعة Kubernetes الخاصة بك. أولًا، تأكد من أنك تستطيع الوصول إلى Kubernetes باستخدام kubectl. إذا لم يكن لديك إعداد kubectl جاهزًا، قم بتكوين الوصول إلى مجموعة Kubernetes الخاصة بك.

بعد التحقق من الاتصال بـ Kubernetes، يمكنك إضافة مستودع Helm الرسمي الذي يحتوي على Charts متعددة:

bash
helm repo add stable https://charts.helm.sh/stable

هيكل Helm Chart

يتكون Helm Chart من مجموعة من الملفات والمجلدات التي تُسهل إدارة البرمجيات. المكونات الرئيسية لـ Chart هي:

  1. Chart.yaml: ملف يحتوي على البيانات الوصفية المتعلقة بـ Chart، مثل الاسم، الإصدار، والوصف.

  2. values.yaml: ملف يحتوي على القيم الافتراضية التي يمكن تخصيصها أثناء عملية التثبيت.

  3. templates/: يحتوي هذا المجلد على القوالب الخاصة بالموارد (مثل Pod و Deployment و Service) التي سيتم إنشاؤها عند تنفيذ Helm.

  4. charts/: يحتوي على Charts فرعية إذا كان هناك حاجة للاعتماد على Charts أخرى.

  5. README.md: يقدم إرشادات حول كيفية استخدام Chart وأية تعليمات إضافية.

كيفية تثبيت البرمجيات باستخدام Helm

الآن وبعد أن قمنا بتثبيت Helm وتكوينه، دعونا ننتقل إلى كيفية استخدامه لتثبيت البرمجيات.

الخطوة 1: البحث عن التطبيقات (Charts)

أولًا، يمكننا البحث عن التطبيقات المتاحة عبر مستودع Helm باستخدام الأمر التالي:

bash
helm search repo <اسم التطبيق>

على سبيل المثال، إذا كنت ترغب في تثبيت تطبيق Nginx، يمكنك البحث عنه على النحو التالي:

bash
helm search repo nginx

الخطوة 2: تثبيت Chart

بمجرد العثور على الـ Chart الذي ترغب في تثبيته، يمكن تثبيته باستخدام الأمر helm install:

bash
helm install <اسم التثبيت> <اسم الـ Chart>

على سبيل المثال، لتثبيت Nginx:

bash
helm install my-nginx stable/nginx-ingress

سيقوم Helm بتنزيل الـ Chart، مع تخصيص القيم الافتراضية من ملف values.yaml، ثم يقوم بتطبيق الموارد اللازمة على Kubernetes، مثل Deployment وService.

الخطوة 3: تخصيص الإعدادات

إذا كنت ترغب في تخصيص بعض الإعدادات أثناء التثبيت، يمكنك تعديل ملف values.yaml أو تقديم معلمات إضافية عبر سطر الأوامر باستخدام الخيار --set:

bash
helm install my-nginx stable/nginx-ingress --set controller.replicaCount=3

سيقوم هذا بتثبيت Nginx مع تخصيص العدد الإجمالي للعقد (replicas) إلى 3.

الخطوة 4: التحقق من التثبيت

بعد التثبيت، يمكنك التحقق من أن الـ Chart قد تم نشره بنجاح باستخدام الأمر التالي:

bash
helm list

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

bash
kubectl get all

تحديث التطبيقات باستخدام Helm

أحد المزايا الرئيسية لـ Helm هو أنه يسهل تحديث التطبيقات بشكل فعال. يمكنك تحديث الـ Chart المثبت عن طريق:

  1. تحميل التحديثات من المستودع:
    أولًا، تأكد من أنك لديك أحدث نسخة من الـ Charts عبر تحديث مستودع Helm:

    bash
    helm repo update
  2. تحديث التثبيت:
    لتحديث تثبيت موجود، استخدم الأمر helm upgrade مع اسم التثبيت:

    bash
    helm upgrade my-nginx stable/nginx-ingress

    إذا كنت ترغب في تخصيص التحديث، يمكنك استخدام المعلمات كما فعلنا أثناء التثبيت.

إزالة التطبيقات باستخدام Helm

في بعض الحالات، قد تحتاج إلى إزالة تطبيق من عناقيد Kubernetes. يمكنك القيام بذلك باستخدام الأمر helm uninstall:

bash
helm uninstall my-nginx

سيقوم هذا بإزالة التطبيق وجميع الموارد المرتبطة به من الـ Kubernetes Cluster.

مميزات استخدام Helm في Kubernetes

  1. سهولة النشر: Helm يبسط عملية النشر، مما يسمح للمطورين بتثبيت وتحديث التطبيقات في دقائق معدودة.

  2. إدارة الإصدارات: يتيح Helm تتبع الإصدارات المختلفة من التطبيقات وإمكانية العودة إلى الإصدار السابق عند الحاجة.

  3. إعادة استخدام Charts: يمكن لمجموعة من الأشخاص أو الفرق إعادة استخدام نفس Helm Charts بسهولة، مما يعزز التعاون في العمل.

  4. أتمتة العمليات: مع Helm، يمكن أتمتة الكثير من عمليات النشر والصيانة باستخدام أدوات مثل CI/CD.

الخاتمة

Helm يعد أداة لا غنى عنها لإدارة البرمجيات ضمن عناقيد Kubernetes. من خلال تبسيط عملية التثبيت والتحديث، يوفر Helm طريقة فعالة وموثوقة للعمل مع التطبيقات المعقدة على Kubernetes. باستخدام Helm، يمكن للمطورين ومسؤولي النظام تحسين سير العمل وضمان نشر التطبيقات بشكل سلس وآمن.