النشر باستخدام Helm
لقد نجحت في إنشاء ودفع كل من صور التشغيل المرحلي والإنتاج إلى مثيل Azure Container Registry. حان الوقت لأتمتة جميع الخطوات وجعل البنية الأساسية لبرنامج ربط العمليات التجارية تعمل نيابة عنك.
حاليا، يجب تغيير الملفات يدويا في كل مرة تقوم فيها بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية، بحيث لا يمكنك النشر تلقائيا. لحل هذه المشكلة، يمكنك استخدام مخطط Helm لإدارة عمليات التوزيع الخاصة بك. في هذه الوحدة، ستتعرف على مخططات Helm وقوالبها.
مخططات Helm
Helm هي أداة تغليف مفتوحة المصدر مشابهة لمديري حزم Linux مثل APT وYum. يمكن أن يساعدك Helm في تثبيت دورة حياة تطبيقات Kubernetes وإدارتها.
يمكنك استخدام Helm لإدارة مخططات Kubernetes، وهي مجموعات من حمل عمل واحد أو أكثر مع ملفات التكوين وملف وصف المخطط. عندما يتم حزمها في مخطط، يمكن بسهولة نشر الملفات كوحدة إلى نظام مجموعة Kubernetes.
تتمثل إحدى مزايا استخدام Helm في عدم الاضطراد إلى نشر الملفات بشكل فردي. يمكنك إصدار أمر واحد لنشر المخطط. يمكنك حتى نشر عدة مخططات تابعة، مع دقة تبعية تلقائية.
فيما يلي بنية دليل مخطط Helm النموذجي:
- يحتوي ملف 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 أكثر كفاءة.