مكتبة الشروحات

النشر باستخدام كوبرنيتس مع مخططات هيلم والموارد المخصصة

لقد أصبحت Kubernetes المعيار الفعلي لإدارة الحاويات، مما يجعل من السهل إدارة وتوسيع ونشر التطبيقات الحاوية. ومع ذلك، مع زيادة تعقيد مجموعات Kubernetes، قد يصبح إدارة النشر باستخدام ملفات YAML فقط أمرًا مرهقًا. يعمل Helm، مدير الحزم لـ Kubernetes، على تسهيل نشر التطبيقات وإدارتها والعودة إلى الإصدار السابق من خلال السماح للمطورين بتجميع ملفات Kubernetes في حزم مع إصدار يسمى "مخططات" (Charts). من ناحية أخرى، تمد الموارد المخصصة (CRs) واجهة API الخاصة بـ Kubernetes، مما يوفر وسيلة لتعريف وإدارة أنواع جديدة من الكائنات.

نشر Kubernetes باستخدام مخططات Helm والموارد المخصصة

لقد أصبحت Kubernetes المعيار الفعلي لإدارة الحاويات، مما يجعل من السهل إدارة وتوسيع ونشر التطبيقات الحاوية. ومع ذلك، مع زيادة تعقيد مجموعات Kubernetes، قد يصبح إدارة النشر باستخدام ملفات YAML فقط أمرًا مرهقًا. يعمل Helm، مدير الحزم لـ Kubernetes، على تسهيل نشر التطبيقات وإدارتها والعودة إلى الإصدار السابق من خلال السماح للمطورين بتجميع ملفات Kubernetes في حزم مع إصدار يسمى "مخططات" (Charts). من ناحية أخرى، تمد الموارد المخصصة (CRs) واجهة API الخاصة بـ Kubernetes، مما يوفر وسيلة لتعريف وإدارة أنواع جديدة من الكائنات.

سيتناول هذا المقال كيفية نشر التطبيقات على Kubernetes باستخدام مخططات Helm والموارد المخصصة، مع تسليط الضوء على فوائد كلتا الطريقتين. سنغطي المواضيع التالية:

  1. مقدمة عن Helm والموارد المخصصة
  2. إعداد مجموعة Kubernetes
  3. أساسيات Helm: تثبيت Helm وإنشاء المخططات
  4. إدارة تطبيقات Kubernetes باستخدام مخططات Helm
  5. إنشاء وإدارة الموارد المخصصة في Kubernetes
  6. دمج مخططات Helm والموارد المخصصة للنشر المرن

ما هو Helm؟

Helm هو مدير حزم لـ Kubernetes يبسط عملية تعريف وتثبيت وترقية تطبيقات Kubernetes. يستخدم قوالب مهيأة مسبقًا (تسمى "المخططات") لنشر التطبيقات وإدارة دورة حياتها، مما يسمح للمطورين بـ:

  • تجميع موارد Kubernetes في وحدة واحدة (مخطط Helm).
  • تثبيت وترقية التطبيقات بسهولة.
  • العودة إلى الإصدارات السابقة بسهولة.
  • إعادة استخدام المخططات لبيئات مختلفة من خلال تعديل القيم.

يستخدم Helm ثلاثة مفاهيم رئيسية:

  • المخططات (Charts): مجموعات من الملفات التي تصف موارد Kubernetes.
  • الإصدار (Release): حالة من مخطط Helm يعمل في مجموعة Kubernetes.
  • المستودعات (Repositories): الأماكن التي يتم تخزين المخططات ومشاركتها.

ما هي الموارد المخصصة لـ Kubernetes؟

الموارد المخصصة لـ Kubernetes (CRs) هي أنواع من الكائنات التي يعرفها المستخدم والتي توسع وظيفة Kubernetes. تمكن الموارد المخصصة المطورين من تعريف كائنات مخصصة واستخدامها كموارد أصلية في Kubernetes. على سبيل المثال، بينما توفر Kubernetes كائنات مدمجة مثل Pods و Deployments و Services، يمكن أن تعرف الموارد المخصصة أي شيء من تكوينات قواعد البيانات إلى قواعد المراقبة.

ترتبط الموارد المخصصة بتعريفات الموارد المخصصة (CRDs)، التي تعمل بمثابة مخطط للـ CR. من خلال استخدام CRDs، يمكن للمطورين إنشاء كائنات API جديدة لـ Kubernetes تعمل مثل الكائنات المدمجة. يمكن ربط الموارد المخصصة بالتحكمات التي تراقب هذه الموارد وتقوم بإجراءات، مما يؤدي إلى أتمتة سير العمل المعقد.

إعداد مجموعة Kubernetes

نحتاج إلى بيئة Kubernetes قبل نشر التطبيقات باستخدام Helm والموارد المخصصة. تُظهر الخطوات التالية كيفية إعداد مجموعة Kubernetes محليًا باستخدام Minikube.

تثبيت Minikube

Minikube هو أداة خفيفة لتشغيل مجموعات Kubernetes محليًا. قم بتثبيت Minikube استنادًا إلى نظام التشغيل الخاص بك:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

بدء Minikube

ابدأ Minikube وأنشئ مجموعة Kubernetes محلية:

minikube start

التحقق من تثبيت Kubernetes

تحقق من حالة المجموعة باستخدام kubectl، أداة سطر أوامر Kubernetes:

kubectl cluster-info
kubectl get nodes

تثبيت Helm

يتطلب Helm مجموعة Kubernetes تعمل، لذا قم بتثبيت Helm على جهازك المحلي وتكوينه للاتصال بمجموعة Kubernetes الخاصة بك:

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

أساسيات Helm: تثبيت Helm وإنشاء المخططات

مع تشغيل مجموعة Kubernetes، يمكننا الغوص في وظائف Helm عن طريق إنشاء ونشر المخططات.

هيكل مخطط Helm

تتبع مخططات Helm هيكلًا محددًا ينظم جميع ملفات تعريف Kubernetes في تنسيق قابل لإعادة الاستخدام.

إنشاء مخطط Helm

قم بتشغيل الأمر التالي لإنشاء مخطط Helm جديد:

helm create mychart

ينشئ هذا الأمر هيكل المجلدات الموصوف أعلاه. قم بتعديل مجلد templates/ لتضمين تعريفات موارد Kubernetes الخاصة بك.

نشر تطبيق باستخدام Helm

لنشر تطبيق باستخدام Helm، اتبع هذه الخطوات:

  • حزمة المخطط:
helm package mychart

ينشر هذا الأمر مخطط Helm وينشئ إصدارًا جديدًا (myrelease).

تخصيص النشر باستخدام القيم

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

يمكنك أيضًا تجاوز values.yaml في وقت التشغيل عن طريق تمرير القيم من خلال سطر الأوامر:

helm install myrelease ./mychart --set image.tag=2.0

إدارة تطبيقات Kubernetes باستخدام مخططات Helm

يبسط Helm التطبيقات المعقدة في Kubernetes عن طريق القوالب وإعادة استخدامها. فيما يلي بعض الحالات المتقدمة لاستخدام Helm.

تحديث التطبيقات

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

helm upgrade myrelease ./mychart

يقوم Helm بترقية التطبيق مع تتبع الإصدار الجديد.

العودة إلى الإصدار السابق

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

helm rollback release 1

استخدام مستودعات Helm

يمكنك مشاركة مخططات Helm عن طريق دفعها إلى مستودعات Helm. لاستخدام مخطط من مستودع عام:

helm repo add stable https://charts.helm.sh/stable
helm install stable/MySQL

إنشاء وإدارة الموارد المخصصة في Kubernetes

بينما يعد Helm ممتازًا لإدارة موارد Kubernetes التقليدية، توفر الموارد المخصصة مرونة لحالات الاستخدام المعقدة. إليك كيفية تعريف وإنشاء وإدارة الموارد المخصصة في Kubernetes.

إنشاء الموارد المخصصة

بمجرد أن تكون CRD موجودة، يمكنك إنشاء حالات من المورد المخصص:

apiVersion: example.com/v1
kind: Database
metadata:
  name: my-database
spec:
  engine: Postgres
  version: 12.3

إدارة الموارد المخصصة

تتصرف الموارد المخصصة مثل أي كائن آخر في Kubernetes. يمكنك سردها، وصفها، وحذفها باستخدام أوامر kubectl القياسية:

kubectl get databases
kubectl describe database my-database
kubectl delete database my-database

دمج مخططات Helm والموارد المخصصة للنشر المرن

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

إنشاء قوالب Helm للموارد المخصصة

يمكنك أيضًا تضمين تعريفات الموارد المخصصة داخل قوالب مخطط Helm. يتيح لك ذلك استخدام القيم وإنشاء الموارد المخصصة بشكل شرطي استنادًا إلى خيارات التكوين:

apiVersion: Values.card.apiVersion
kind: Database
metadata:
  name: Release.Name
spec:
  engine: Values.database.engine
  version: Values.database.version

النشر باستخدام Helm

أخيرًا، قم بنشر المخطط الذي يتضمن كلًا من موارد Kubernetes التقليدية والموارد المخصصة:

helm install myrelease ./mychart

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

  • 0 أعضاء وجدوا هذه المقالة مفيدة
هل كانت المقالة مفيدة ؟