تثبيت البرمجيات ضمن عناقيد Kubernetes باستخدام مدير الحزم Helm
مقدمة
تُعد Kubernetes واحدة من أقوى أدوات التنسيق والتحكم في الحاويات في البيئة السحابية الحديثة. حيث تتيح لك إدارة التطبيقات والخدمات المعقدة في بيئات متعددة من الحاويات (Containers) بسهولة. وفي إطار العمل مع Kubernetes، يعتبر Helm مدير الحزم الأكثر شيوعًا لاحتواء التطبيقات وتسهيل نشرها وصيانتها على Kubernetes. في هذا المقال، سنتناول كيفية استخدام Helm لتثبيت البرمجيات ضمن عناقيد Kubernetes، مع شرح مفصل لكافة المفاهيم والخطوات الضرورية.
ما هو Helm؟
Helm هو أداة مفتوحة المصدر تهدف إلى تبسيط إدارة تطبيقات Kubernetes عبر حزم تُسمى “Charts”. الـ Helm Chart هو عبارة عن مجموعة من الملفات التي تُعرّف كيفية تثبيت وتكوين تطبيقات Kubernetes. يمكن أن يحتوي Helm Chart على ملفات YAML مختلفة تحتوي على تفاصيل الإعدادات الخاصة بالبرمجيات، وأيضًا على معلمات يمكن تخصيصها أثناء التثبيت.
باستخدام Helm، يمكن للمطورين والمسؤولين عن الأنظمة بسهولة:
-
تثبيت التطبيقات المعقدة على Kubernetes.
-
تحديث التطبيقات بطريقة منهجية.
-
إدارة الإصدارات المختلفة للتطبيقات.
-
إزالة التطبيقات بطريقة سلسة.
لماذا نستخدم Helm؟
هناك العديد من الأسباب التي تجعل Helm أداة مثالية لإدارة البرمجيات ضمن Kubernetes:
-
تبسيط النشر: يسمح Helm بتجميع مكونات التطبيقات في ملفات مُهيكلة يمكن إعادة استخدامها وتخصيصها.
-
التحديثات السهلة: مع Helm، يمكن تحديث التطبيقات بمرونة عبر التحكم بالإصدارات.
-
إدارة الإعدادات: يمكن تخصيص الإعدادات بسهولة باستخدام ملفات YAML، مما يوفر تخصيصًا دقيقًا للمكونات.
-
الاستقرار: يُساعد Helm في إدارة النسخ المختلفة من التطبيقات وإصدار التحديثات بطريقة آمنة.
-
الأمان: يسهم Helm في ضمان نشر التطبيقات بشكل صحيح ومتسق، مما يقلل من احتمالية حدوث أخطاء بشرية.
متطلبات أساسية قبل البدء
قبل البدء في استخدام Helm، هناك بعض المتطلبات الأساسية التي يجب أن تتوفر في بيئة العمل:
-
Kubernetes Cluster: يجب أن يكون لديك مجموعة Kubernetes مُهيئة وجاهزة للاستخدام. يمكن أن تكون هذه البيئة محلية أو مستضافة في السحابة.
-
أداة Helm: تحتاج إلى تثبيت Helm على جهازك. يمكن تثبيت Helm باستخدام أدوات إدارة الحزم مثل
Homebrewعلى macOS أوChocolateyعلى Windows. -
صلاحيات الإدارة: يجب أن يكون لديك صلاحيات الإدارة في Kubernetes حتى تتمكن من تثبيت البرمجيات وإدارتها باستخدام Helm.
تثبيت Helm
أول خطوة هي تثبيت Helm على جهازك. فيما يلي طريقة التثبيت عبر مختلف الأنظمة:
على macOS
bashbrew install helm
على Linux
bashcurl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
على Windows
bashchoco install kubernetes-helm
إعداد Helm لاستخدامه مع Kubernetes
بمجرد تثبيت Helm، يجب أن تقوم بتهيئته ليتواصل مع مجموعة Kubernetes الخاصة بك. أولًا، تأكد من أنك تستطيع الوصول إلى Kubernetes باستخدام kubectl. إذا لم يكن لديك إعداد kubectl جاهزًا، قم بتكوين الوصول إلى مجموعة Kubernetes الخاصة بك.
بعد التحقق من الاتصال بـ Kubernetes، يمكنك إضافة مستودع Helm الرسمي الذي يحتوي على Charts متعددة:
bashhelm repo add stable https://charts.helm.sh/stable
هيكل Helm Chart
يتكون Helm Chart من مجموعة من الملفات والمجلدات التي تُسهل إدارة البرمجيات. المكونات الرئيسية لـ Chart هي:
-
Chart.yaml: ملف يحتوي على البيانات الوصفية المتعلقة بـ Chart، مثل الاسم، الإصدار، والوصف.
-
values.yaml: ملف يحتوي على القيم الافتراضية التي يمكن تخصيصها أثناء عملية التثبيت.
-
templates/: يحتوي هذا المجلد على القوالب الخاصة بالموارد (مثل Pod و Deployment و Service) التي سيتم إنشاؤها عند تنفيذ Helm.
-
charts/: يحتوي على Charts فرعية إذا كان هناك حاجة للاعتماد على Charts أخرى.
-
README.md: يقدم إرشادات حول كيفية استخدام Chart وأية تعليمات إضافية.
كيفية تثبيت البرمجيات باستخدام Helm
الآن وبعد أن قمنا بتثبيت Helm وتكوينه، دعونا ننتقل إلى كيفية استخدامه لتثبيت البرمجيات.
الخطوة 1: البحث عن التطبيقات (Charts)
أولًا، يمكننا البحث عن التطبيقات المتاحة عبر مستودع Helm باستخدام الأمر التالي:
bashhelm search repo <اسم التطبيق>
على سبيل المثال، إذا كنت ترغب في تثبيت تطبيق Nginx، يمكنك البحث عنه على النحو التالي:
bashhelm search repo nginx
الخطوة 2: تثبيت Chart
بمجرد العثور على الـ Chart الذي ترغب في تثبيته، يمكن تثبيته باستخدام الأمر helm install:
bashhelm install <اسم التثبيت> <اسم الـ Chart>
على سبيل المثال، لتثبيت Nginx:
bashhelm install my-nginx stable/nginx-ingress
سيقوم Helm بتنزيل الـ Chart، مع تخصيص القيم الافتراضية من ملف values.yaml، ثم يقوم بتطبيق الموارد اللازمة على Kubernetes، مثل Deployment وService.
الخطوة 3: تخصيص الإعدادات
إذا كنت ترغب في تخصيص بعض الإعدادات أثناء التثبيت، يمكنك تعديل ملف values.yaml أو تقديم معلمات إضافية عبر سطر الأوامر باستخدام الخيار --set:
bashhelm install my-nginx stable/nginx-ingress --set controller.replicaCount=3
سيقوم هذا بتثبيت Nginx مع تخصيص العدد الإجمالي للعقد (replicas) إلى 3.
الخطوة 4: التحقق من التثبيت
بعد التثبيت، يمكنك التحقق من أن الـ Chart قد تم نشره بنجاح باستخدام الأمر التالي:
bashhelm list
يجب أن يظهر اسم التثبيت الخاص بك في القائمة. إذا كان كل شيء على ما يرام، يمكنك التحقق من الموارد عبر kubectl:
bashkubectl get all
تحديث التطبيقات باستخدام Helm
أحد المزايا الرئيسية لـ Helm هو أنه يسهل تحديث التطبيقات بشكل فعال. يمكنك تحديث الـ Chart المثبت عن طريق:
-
تحميل التحديثات من المستودع:
أولًا، تأكد من أنك لديك أحدث نسخة من الـ Charts عبر تحديث مستودع Helm:bashhelm repo update -
تحديث التثبيت:
لتحديث تثبيت موجود، استخدم الأمرhelm upgradeمع اسم التثبيت:bashhelm upgrade my-nginx stable/nginx-ingressإذا كنت ترغب في تخصيص التحديث، يمكنك استخدام المعلمات كما فعلنا أثناء التثبيت.
إزالة التطبيقات باستخدام Helm
في بعض الحالات، قد تحتاج إلى إزالة تطبيق من عناقيد Kubernetes. يمكنك القيام بذلك باستخدام الأمر helm uninstall:
bashhelm uninstall my-nginx
سيقوم هذا بإزالة التطبيق وجميع الموارد المرتبطة به من الـ Kubernetes Cluster.
مميزات استخدام Helm في Kubernetes
-
سهولة النشر: Helm يبسط عملية النشر، مما يسمح للمطورين بتثبيت وتحديث التطبيقات في دقائق معدودة.
-
إدارة الإصدارات: يتيح Helm تتبع الإصدارات المختلفة من التطبيقات وإمكانية العودة إلى الإصدار السابق عند الحاجة.
-
إعادة استخدام Charts: يمكن لمجموعة من الأشخاص أو الفرق إعادة استخدام نفس Helm Charts بسهولة، مما يعزز التعاون في العمل.
-
أتمتة العمليات: مع Helm، يمكن أتمتة الكثير من عمليات النشر والصيانة باستخدام أدوات مثل CI/CD.
الخاتمة
Helm يعد أداة لا غنى عنها لإدارة البرمجيات ضمن عناقيد Kubernetes. من خلال تبسيط عملية التثبيت والتحديث، يوفر Helm طريقة فعالة وموثوقة للعمل مع التطبيقات المعقدة على Kubernetes. باستخدام Helm، يمكن للمطورين ومسؤولي النظام تحسين سير العمل وضمان نشر التطبيقات بشكل سلس وآمن.

