نشر التطبيقات في Kubernetes يمكن أن يكون معقدًا، خاصة بالنسبة للمبتدئين. تعرف على Argo CD، أداة تعتمد على GitOps، مصممة لتوجيه التطبيقات في Kubernetes بشكل تصريحي لتوتير عمليات نشر التطبيقات. في ورشة العمل هذه، ستتعلم كيفية إعداد واستخدام Argo CD لنشر التطبيقات بسلاسة، من خلال دليل خطوة بخطوة مصمم خصيصًا للمبتدئين.
ما ستتعلمه
- تثبيت وتكوين Argo CD.
- نشر التطبيقات باستخدام مبادئ GitOps.
- مراقبة عمليات النشر وحل المشكلات.
- التراجع وإدارة إصدارات التطبيق.
- تأمين Argo CD للاستخدام الإنتاجي.
لماذا Argo CD؟
Argo CD يبسط إدارة التطبيقات في Kubernetes عن طريق مزامنة عنقودك بشكل مستمر مع التوصيفات المحددة في مستودعات Git. تتضمن الفوائد:
- إدارة تصريحية: تعريف الحالة المطلوبة للعنقود في Git.
- التسليم المستمر: أتمتة عمليات النشر بالمزامنة الفورية.
- التحكم بالإصدارات: التراجع إلى الإصدارات السابقة بسهولة.
المتطلبات
قبل البدء، تأكد من وجود:
- عنقود Kubernetes (استخدم Minikube أو Kind أو خدمة مُدارة مثل GKE أو EKS أو AKS).
- تثبيت
kubectl
وتكوينه للاتصال بعنقودك. - حساب GitHub أو GitLab لاستضافة ملفات تكوين Kubernetes الخاصة بك.
- معرفة أساسية بصيغة YAML (سيتم تغطيتها في ورشة العمل هذه إذا كنت جديدًا).
دليل خطوة بخطوة
1. إعداد عنقود Kubernetes
الخطوة 1: تثبيت Minikube
إذا لم يكن لديك عنقود، استخدم Minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
الخطوة 2: بدء Minikube
قم بتشغيل الأمر minikube start
بعد تثبيت Minikube على نظامك:
minikube start
الخطوة 3: التحقق من العنقود
تأكد من تشغيل العنقود:
kubectl cluster-info
kubectl get nodes
2. تثبيت Argo CD
الخطوة 1: إنشاء مساحة أسماء
يعمل Argo CD في مساحة أسماء خاصة به للعزل:
kubectl create namespace argocd
الخطوة 2: تثبيت Argo CD
قم بتطبيق الملفات الرسمية لتثبيت Argo CD:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
الخطوة 3: التحقق من التثبيت
تحقق من الحاويات الخاصة بـ Argo CD:
kubectl get pods -n argocd
3. الوصول إلى واجهة المستخدم لـ Argo CD
الخطوة 1: عرض Argo CD
قم بعرض argocd-server
لجهازك المحلي:
kubectl port-forward svc/argocd-server -n argocd 8080:443
الخطوة 2: استرداد بيانات اعتماد المسؤول
احصل على كلمة مرور المسؤول الافتراضية:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
الخطوة 3: تسجيل الدخول إلى واجهة المستخدم
- افتح https://localhost:8080 في متصفحك.
- قم بتسجيل الدخول باستخدام:
- اسم المستخدم: admin
- كلمة المرور: المستردة في الخطوة السابقة.
4. ربط Argo CD بمستودع Git الخاص بك
الخطوة 1: إعداد مستودع Git
- أنشئ مستودع Git (مثلًا، على GitHub).
- أضف توزيعات Kubernetes الخاصة بك إلى المستودع. استخدم هذا المثال
deployment.yaml
:
apiVersion apps/v1
kind Deployment
metadata
name nginx-deployment
labels
app nginx
spec
replicas2
selector
matchLabels
app nginx
template
metadata
labels
app nginx
spec
containers
name nginx
image nginx1.19
ports
containerPort80
الخطوة 2: إضافة المستودع إلى Argo CD
من خلال واجهة المستخدم:
- انتقل إلى الإعدادات > المستودعات.
- أضف عنوان URL الخاص بمستودع Git الخاص بك وتفاصيل المصادقة (SSH أو HTTPS).
أو، استخدم واجهة سطر الأوامر:
argocd repo add <REPO_URL> --username <USERNAME> --password <PASSWORD>
5. نشر التطبيق الأول الخاص بك
الخطوة 1: إنشاء تطبيق
في واجهة المستخدم Argo CD:
- انقر على تطبيق جديد.
-
- اسم التطبيق: nginx-app
- المشروع: الافتراضي
- عنوان مستودع الأكواد: عنوان مستودع Git الخاص بك
- المسار: المسار إلى
deployment.yaml
- عنوان عنصر التجميع:
https://kubernetes.default.svc
- نطاق العمل: الافتراضي
الخطوة 2: مزامنة التطبيق
بعد إنشاء التطبيق:
- انقر على المزامنة في واجهة مستخدم Argo CD.
- شاهد كيف يتم نشر التطبيق إلى مجموعة Kubernetes الخاصة بك.
6. توتير عمليات النشر تلقائيًا
الخطوة 1: تمكين المزامنة التلقائية
تمكين المزامنة المستمرة:
argocd app set nginx-app --sync-policy automated
الخطوة 2: اختبار التغييرات
- قم بتعديل
deployment.yaml
في Git. - قم بدفع التغييرات إلى المستودع.
- سيكتشف Argo CD التغييرات ويقوم تلقائيًا بمزامنتها إلى المجموعة.
7. مراقبة وحل المشكلات
الخطوة 1: مراقبة صحة التطبيق
في الواجهة، تحقق:
- الصحة: تشير إلى مدى تشغيل التطبيق كما هو متوقع.
- حالة المزامنة: تضمن مطابقة حالة العقدة مع Git.
الخطوة 2: عرض السجلات
إذا حدث خطأ ما:
kubectl logs -n argocd <POD_NAME>
الخطوة 3: التراجع عن التغييرات
التراجع إلى حالة سابقة:
argocd app rollback nginx-app <REVISION>
8. تأمين Argo CD
الخطوة 1: تغيير كلمة المرور الافتراضية للمسؤول
قم بتغيير كلمة المرور الافتراضية للمسؤول باستخدام الأمر argocd account update-password
:
argocd account update-password
الخطوة 2: دمج SSO
لبيئات الإنتاج، قم بالدمج مع حلول Single Sign-On (SSO) مثل GitHub أو LDAP.
أفضل الممارسات في GitOps
- استراتيجيات الفروع: استخدم فروعًا منفصلة للتطوير والاستضافة والإنتاج.
- مراجعات الشيفرة: فرض مراجعات الأقران لتغييرات الوصف.
- سجلات التدقيق: قم بمراجعة سجلات Argo CD بانتظام للامتثال وتصحيح الأخطاء.
الاستنتاج
يوفر Argo CD طريقة سهلة للمبتدئين ولكنها قوية لإدارة نشر Kubernetes باستخدام مبادئ GitOps. تجهزك هذه الورشة بالمهارات اللازمة لنشر ومراقبة وإدارة التطبيقات بكفاءة. من خلال الالتزام بهذه الممارسات، أنت على الطريق الصحيح لاحتراف توصيل Kubernetes المستمر.
Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd