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

مكتمل

لقد نجحت في إنشاء ودفع كل من صور التشغيل المرحلي والإنتاج إلى مثيل Azure Container Registry. حان الوقت لأتمتة جميع الخطوات وجعل البنية الأساسية لبرنامج ربط العمليات التجارية تعمل نيابة عنك.

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

مخططات Helm

Helm هي أداة تغليف مفتوحة المصدر مشابهة لمديري حزم Linux مثل APT وYum. يمكن أن يساعدك Helm في تثبيت دورة حياة تطبيقات Kubernetes وإدارتها.

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

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

فيما يلي بنية دليل مخطط Helm النموذجي:

Screenshot that shows an example of a Helm chart tree.

  • يحتوي ملف Chart.yaml على اسم المخطط ووصفه وإصداره.
  • يتضمن دليل المخططات مخططات تابعة.
  • يحتوي دليل القوالب على جميع ملفات البيان.
  • يحتوي ملف values.yaml على القيم الافتراضية لقوالب Helm.

قوالب Helm

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

انظر إلى المثال التالي لملف deployment.yaml في دليل kubernetes لتشعب موقع الويب الخاص بك:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: contoso-website
spec:
  selector:
    matchLabels:
      app: contoso-website
  template:
    metadata:
      labels:
        app: contoso-website
    spec:
      containers:
        - image: !IMAGE!
          name: contoso-website
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 250m
              memory: 256Mi
          ports:
            - containerPort: 80
              name: http

يستبدل !IMAGE! سير العمل العنصر النائب بمثيل سجل الحاوية واسم الصورة. في سير عمل يدوي، يمكنك تشغيل الأمر التالي لاستبدال !IMAGE! العنصر النائب ثم طباعة النتيجة. لتشغيل التعليمات البرمجية يدويا، يمكنك توجيه الأمر لإنشاء kubectl apply -f - أحمال العمل:

$ sed 's+!IMAGE!+'"$ACR_NAME"'/contoso-website+g' kubernetes/deployment.yaml

ومع ذلك، فإن هذا الحل اليدوي ليس أنيقا أو فعالا. مع القولبة الأصلية Helm، يمكنك استبدال !IMAGE! باستخدام {{.Values.containerImage}} المتغير بدلا من ذلك.

...
  template:
...
    spec:
      containers:
        - image: {{.Values.containerImage}}
...

بعد ذلك، يمكنك تشغيل helm install للإشارة إلى صورتك وتمرير مجلد المخططات :

$ helm install contoso-website ./chart-location --set containerImage="$ACR_NAME/contoso-website"

كما يقدم Helm وظائف القالب لمنطق أكثر تعقيدا، على سبيل المثال لتضمين القيم الافتراضية والمطلوبة في بيئتك. انتقل إلى الوحدة التالية لإنشاء مخطط Helm لجعل البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD أكثر كفاءة.

‏‫اختبر معلوماتك

1.

ما هو Helm؟

2.

ما الذي يجعل Helm مفيدا بشكل خاص في البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD؟

راجع إجاباتك