في ظل البيئة المعتمدة على السحابة في الوقت الحاضر، تتبنى المؤسسات بشكل متزايد منصات تنسيق الحاويات مثل Kubernetes لإدارة تطبيقاتها بكفاءة. يبسط Kubernetes عملية نشر التطبيقات وتوسيع نطاقها وإدارتها، مما يجعله الخيار المثالي للشركات التي ترغب في الاستفادة من بنية السحابة التحتية. ويعزز Helm، مدير الحزم لـ Kubernetes، هذه التجربة من خلال السماح للمطورين بتعريف التطبيقات وتثبيتها وترقيتها بسهولة. يستعرض هذا المقال كيفية إعداد بنية سحابية باستخدام Kubernetes و Helm، مع شرح المكونات الرئيسية والخطوات وأفضل الممارسات المتبعة.
فهم Kubernetes ما هو Kubernetes؟ Kubernetes، الذي يُختصر أحيانًا بـ K8s، هو منصة مفتوحة المصدر لتنسيق الحاويات مصممة لأتمتة نشر الحاويات وتوسيع نطاقها وتشغيلها. تم تطويره في البداية بواسطة Google، وأصبح Kubernetes المعيار الفعلي لتنسيق الحاويات، مما يتيح للمؤسسات تشغيل التطبيقات بطريقة موزعة عبر مجموعات من الآلات.
الميزات الرئيسية لـ Kubernetes يوفر Kubernetes العديد من الميزات الأساسية التي تجعله منصة قوية لإدارة التطبيقات المعبأة في حاويات:
- الشفاء الذاتي: يمكن لـ Kubernetes استبدال الحاويات الفاشلة تلقائيًا وضمان الحفاظ على العدد المطلوب من النسخ.
- موازنة الحمل: يقوم بتوزيع حركة المرور عبر الشبكة على الحاويات لضمان عدم تحميل حاوية واحدة بشكل مفرط.
- التحديثات التلقائية والتراجع: يدير Kubernetes عملية النشر، مما يتيح التحديثات السلسة والقدرة على الرجوع إلى الإصدارات السابقة إذا لزم الأمر.
- اكتشاف الخدمات: يمكن للتطبيقات العثور بسهولة على بعضها البعض والتواصل عبر آليات اكتشاف الخدمة المدمجة في Kubernetes.
المكونات الأساسية لـ Kubernetes يتكون Kubernetes من عدة مكونات أساسية تعمل معًا لإدارة التطبيقات:
- العقدة الرئيسية (Master Node): هي لوحة التحكم المسؤولة عن إدارة مجموعة Kubernetes، بما في ذلك جدولة وتوسيع نطاق التطبيقات والحفاظ على الحالة المطلوبة للتطبيقات.
- العقدة العاملة (Worker Nodes): هي الآلات التي تقوم بتشغيل التطبيقات المعبأة في الحاويات وتتعامل مع عبء العمل.
- البودات (Pods): هي أصغر وحدة نشر في Kubernetes، ويمكن أن تحتوي على حاوية واحدة أو أكثر.
- الخدمات (Services): هي شبكات مجردة تتيح الاتصال بين المكونات المختلفة داخل الكتلة.
مقدمة في Helm ما هو Helm؟ Helm هو مدير الحزم لـ Kubernetes الذي يبسط نشر وإدارة التطبيقات على منصة Kubernetes. يسمح للمطورين بتعريف التطبيقات من خلال آلية القوالب، وإدارة إصدارات التطبيقات، وأتمتة عملية النشر.
الميزات الرئيسية لـ Helm يوفر Helm عدة ميزات مهمة لإدارة التطبيقات على Kubernetes:
- نشر سهل: يسمح Helm للمطورين بنشر التطبيقات بسرعة باستخدام التكوينات المعرفة مسبقًا.
- إدارة الإصدارات: يدير إصدارات التطبيقات، مما يتيح التراجع والترقية بسهولة.
- إدارة الاعتماديات: يمكن لـ Helm إدارة اعتمادات التطبيقات، مما يضمن نشر جميع الخدمات المطلوبة معًا.
- محرك القوالب: يستخدم Helm نظام القوالب لإنشاء ملفات Kubernetes التعريفية ديناميكيًا، مما يجعل تخصيص النشر أسهل.
هيكل Helm Chart Helm chart هو مجموعة من الملفات التي تصف مجموعة من الموارد المتعلقة بـ Kubernetes. يشمل هيكل Helm chart عادةً:
- Chart.yaml: يحتوي على بيانات التعريف حول الـ chart، مثل الاسم والإصدار والوصف.
- Values.yaml: هو ملف تكوين يحدد القيم الافتراضية للـ chart.
- Templates/: هو مجلد يحتوي على قوالب تعريف Kubernetes التي يقوم Helm بترجمتها إلى ملفات YAML صالحة أثناء التثبيت.
- Charts/: هو مجلد لإدارة اعتمادات الـ chart.
إعداد البنية التحتية السحابية اختيار مزود السحابة قبل إعداد بنية Kubernetes التحتية، من الضروري اختيار مزود سحابة يلبي احتياجاتك. تشمل مزودي السحابة الشائعين لـ Kubernetes:
- خدمات أمازون ويب (AWS): توفر خدمة Amazon Elastic Kubernetes Service (EKS) لـ Kubernetes المدارة.
- منصة جوجل السحابية (GCP): تقدم خدمة Google Kubernetes Engine (GKE) لإدارة Kubernetes.
- مايكروسوفت آزور: تحتوي على خدمة Azure Kubernetes Service (AKS) لتبسيط نشر وإدارة Kubernetes.
إنشاء مجموعة Kubernetes بعد اختيار مزود السحابة، يمكنك إنشاء مجموعة Kubernetes باستخدام خدماتهم الخاصة:
تكوين kubectl أداة سطر الأوامر kubectl هي أداة أساسية للتفاعل مع مجموعة Kubernetes الخاصة بك. بعد تثبيت kubectl، تأكد من تكوينه بشكل صحيح للتواصل مع خادم API الخاص بـ Kubernetes.
تثبيت Helm تثبيت CLI لـ Helm لتثبيت Helm، اتبع هذه الخطوات:
إضافة مستودعات Helm تستضيف مستودعات Helm الـ charts التي يمكنك استخدامها للنشر.
نشر التطبيقات باستخدام Helm إنشاء Helm Chart لإنشاء Helm chart جديد، استخدم الأمر التالي:
helm create my-app
ينشئ هذا الأمر مجلدًا جديدًا يحتوي على الملفات اللازمة وهيكل المجلدات لـ Helm chart الخاص بك.
تثبيت تطبيق لتثبيت تطبيق باستخدام Helm، نفذ الأمر التالي:
helm install my-release ./my-app
يقوم هذا الأمر بنشر التطبيق المعرف في Helm chart الخاص بك، ويقوم بإنشاء الموارد اللازمة لـ Kubernetes.
ترقية وعودة الإصدارات يسمح لك Helm بإدارة إصدارات التطبيقات بسهولة:
-
ترقية تطبيق: لترقية تطبيق، عدل القيم في ملف
values.yaml
الخاص بك و نفذ الأمر:helm upgrade my-release ./my-app
-
العودة إلى إصدار سابق: إذا فشل التحديث، يمكنك العودة إلى إصدار سابق:
helm rollback my-release [REVISION]
إدارة موارد Kubernetes توسيع نطاق التطبيقات يسهل Kubernetes توسيع نطاق التطبيقات للأعلى أو للأسفل. لتوسيع نطاق تطبيقك، استخدم الأمر التالي:
kubectl scale deployment my-app --replicas=5