عند نشر موارد Kubernetes في عنقود، يكون من الضروري في بعض الأحيان نشرها بترتيب محدد. على سبيل المثال، يجب أن تكون معرفة الموارد الخاصة (CRD) موجودة قبل إنشاء أي موارد خاصة من تلك النوعية.
سفيلوس يمكن أن يساعدك على حل هذه المشكلة عن طريق السماح لك بتحديد الترتيب الذي يتم به نشر موارد Kubernetes.
ترتيب ClusterProfile
A ClusterProfile is a Kubernetes custom resource definition (CRD) that defines the resources that you want to deploy on a set of Kubernetes clusters.
يسمح ClusterProfile بالعملاء بتعريف ترتيب:
- باستخدام حقل
helmCharts
: يسمح لك حقلhelmCharts
بتحديد قائمة برسوم Helm التي تحتاج إلى نشرها. سيقوم سفيلوس بنشر مخططات Helm بالترتيب الذي يتم فيه سرد هذا الحقل. - باستخدام حقل
policyRefs
: يسمح لك حقلpolicyRefs
بالإشارة إلى قائمة من مواردConfigMap
و Secret التي تحتاج إلى نشر محتوياتها. سيقوم سفيلوس بنشر الموارد بالترتيب الذي يتم فيه سرد هذا الحقل.
فيما يلي بعض الأمثلة:
- سيقوم الإصدار التالي من
ClusterProfile
بنشر مخطط Helm لبرومتهيس أولاً ثم مخطط Helm لغرافانا:
apiVersion: config.projectsveltos.io/v1alpha1
kind: ClusterProfile
metadata:
name: prometheus-grafana
spec:
clusterSelector: env=fv
syncMode: Continuous
helmCharts:
- repositoryURL: https://prometheus-community.github.io/helm-charts
repositoryName: prometheus-community
chartName: prometheus-community/prometheus
chartVersion: 23.4.0
releaseName: prometheus
releaseNamespace: prometheus
helmChartAction: Install
- repositoryURL: https://grafana.github.io/helm-charts
repositoryName: grafana
chartName: grafana/grafana
chartVersion: 6.58.9
releaseName: grafana
releaseNamespace: grafana
helmChartAction: Install
ترتيب نشر الموارد مع الأحداث
في بعض الحالات، يكون من الضروري نشر موارد Kubernetes فقط بعد أن تكون الموارد الأخرى في حالة صحية. على سبيل المثال، لا يجب نشر مهمة تنشئ جدول في قاعدة بيانات حتى يصبح نشر القاعدة في حالة صحية.
يمكن أن يساعدك Sveltos في حل هذه المشكلة عن طريق السماح لك باستخدام الأحداث للتحكم في نشر تطبيقك.
الحدث هو إشعار يتم إرساله عندما يتحقق شرط معين. على سبيل المثال، يمكنك إنشاء حدث يتم إرساله عندما يصبح نشر قاعدة البيانات صحيحًا.
يمكنك بعد ذلك استخدام هذا الحدث لتشغيل نشر المهمة التي تنشئ الجدول في قاعدة البيانات.
من خلال استخدام الأحداث، يمكنك التأكد من أن تطبيقك يتم نشره بطريقة معتدلة ومنظمة.
في المثال المذكور أعلاه، تم تعليم Sveltos بأن يقوم بما يلي:
- نشر تنفيذ PostgreSQL وخدمة
- الانتظار حتى يصبح تنفيذ PostgreSQL جاهزًا
- نشر مهمة تنشئ جدول في قاعدة البيانات
- الانتظار حتى يتم الانتهاء من المهمة
- نشر تطبيق todo-app الذي يمكنه الوصول إلى تنفيذ PostgreSQL
- الانتظار حتى يصبح تطبيق todo-app صحيحًا
- نشر مهمة تضيف مدخلًا إلى قاعدة البيانات عبر تطبيق todo-app
يمكن العثور على جميع YAMLs لهذا المثال في الوثائق الخاصة بـprojectsveltos.
دعم هذا المشروع
I hope you enjoyed this article! If you did, please check out the GitHub repo for the project. The repo contains the code, documentation, and examples, so it’s a great resource for getting started.
يمكنك أيضًا تسجيل المشروع إذا وجدته مفيدًا.
شكرًا لك على القراءة!
Source:
https://dzone.com/articles/deploy-kubernetes-resources-in-a-controlled-and-or