ديف أوبس 2 دقائق للقراءة

نهج DevOps الحديث: استراتيجيات أتمتة ونشر GitOps لتطبيقات Kubernetes باستخدام Argo CD

PROFSCODE Ekibi 19 يوليو 2026
Paylaş:
تطبيقات GitOps في بيئة Kubernetes: دليل النشر المستمر التصريحي باستخدام Argo CD

تطبيقات GitOps في بيئة Kubernetes: دليل النشر المستمر التصريحي باستخدام Argo CD

في عمليات تطوير البرمجيات الحديثة، يعد نشر التطبيقات بسرعة وموثوقية أمرًا بالغ الأهمية. في حين أن أساليب CI/CD التقليدية غالبًا ما تجلب تعقيدات تشغيلية، تهدف فلسفة GitOps إلى تقليل هذا التعقيد وتبسيط عمليات النشر. في هذا الدليل، ستتعلم خطوة بخطوة كيفية تطبيق GitOps في بيئة Kubernetes باستخدام Argo CD، وهي أداة شائعة.

فلسفة GitOps ومزاياها

GitOps هو نهج "تصريحي" يحدد بنية التشغيل التحتية وحالة تطبيقاتك من خلال مستودع Git. يعمل Git كمصدر واحد للحقيقة (Single Source of Truth) ومسار تدقيق (audit trail). تبدأ أي تغييرات في البنية التحتية أو التطبيق بتنفيذ (commit) على Git، وتكتشف أدوات الأتمتة هذا التنفيذ لتطبيق الحالة المستهدفة. يوفر هذا النهج مزايا مهمة مثل سهولة استعادة النظام، ومراجعة، وتوحيد حالة أنظمتك عبر سجل Git.

ما هو Argo CD ولماذا يجب تفضيله؟

Argo CD هي أداة تسليم مستمر تصريحية، قائمة على GitOps، لـ Kubernetes. تعمل كجهاز تحكم (controller) في مجموعة Kubernetes الخاصة بك وتراقب باستمرار حالة التطبيق المستهدفة (بيانات Kubernetes) المحددة في مستودع Git الخاص بك. إذا اكتشفت اختلافًا (drift) بين الحالة الحالية للمجموعة والحالة المستهدفة في Git، فإنها تقوم بمزامنة هذه الحالة تلقائيًا. تشمل الفوائد الرئيسية لـ Argo CD ما يلي:

  • المزامنة التصريحية والتلقائية: يتم تعريف حالات التطبيق في Git، ويقوم Argo CD بمزامنة هذه الحالة تلقائيًا مع المجموعة.
  • واجهة مستخدم رسومية غنية: توفر واجهة ويب شاملة لمراقبة حالة التطبيق المباشرة وصحة المزامنة والسجل.
  • اكتشاف التصحيح والانجراف: تكتشف التغييرات اليدوية في المجموعة ويمكنها إعادتها إلى الحالة المحددة في Git (أو الإبلاغ عنها).
  • سهولة الاستعادة (Rollback): بفضل ميزة التحكم في الإصدار التي يوفرها Git، يمكنك بسهولة العودة إلى أي حالة سابقة للتطبيق.
  • دعم المجموعات المتعددة: إدارة مجموعات Kubernetes متعددة من مثيل واحد لـ Argo CD.

الخطوة 1: تثبيت Argo CD على مجموعة Kubernetes الخاصة بك

تثبيت Argo CD على مجموعة Kubernetes الخاصة بك أمر بسيط للغاية. أولاً، دعنا ننشئ مساحة اسم (namespace) مخصصة لـ Argo CD ثم نطبق بيانات التثبيت:

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

بعد اكتمال التثبيت، تأكد من أن وحدات Argo CD (pods) تعمل:

kubectl get pods -n argocd

للوصول إلى واجهة الويب لـ Argo CD، يمكنك كشف خدمة argocd-server خارجيًا باستخدام NodePort أو Port Forwarding. إليك مثال بسيط على Port Forwarding:

kubectl port-forward svc/argocd-server -n argocd 8080:443

الآن يمكنك الوصول إلى واجهة الويب على https://localhost:8080. اسم المستخدم لتسجيل الدخول الأول هو admin. استخدم الأمر التالي لاسترداد كلمة المرور:

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo

الخطوة 2: نشر تطبيقك الأول باستخدام GitOps

الآن دعنا ننشر تطبيق Nginx بسيطًا باستخدام نهج GitOps. أولاً، أنشئ مستودع Git يحتوي على بيانات Kubernetes للتطبيق. على سبيل المثال، لنفترض وجود مستودع على git@github.com:your-username/argocd-demo.git، وأضف إليه ملفًا باسم nginx-app.yaml:

# nginx-app.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.19.10
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: ClusterIP

نفذ هذا الملف وادفعه إلى مستودع Git الخاص بك. بعد ذلك، سننشئ مورد Application لتعريف هذا التطبيق على Argo CD. يخبر هذا المورد Argo CD بمكان وجود التطبيق (مستودع Git) والمكان الذي يجب نشره فيه (مجموعة Kubernetes). يمكنك القيام بذلك إما باستخدام واجهة سطر الأوامر (CLI) لـ Argo CD أو عن طريق التطبيق المباشر على Kubernetes. دعنا نستخدم واجهة سطر الأوامر:

argocd app create nginx-gitops \
  --repo https://github.com/your-username/argocd-demo.git \
  --path . \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace default \
  --sync-policy automated --self-heal --prune

يخبر هذا الأمر Argo CD بإنشاء تطبيق جديد باسم nginx-gitops، واستخدام البيانات في مستودع Git المحدد، ونشرها في مساحة الاسم default. --sync-policy automated يتيح المزامنة التلقائية، و--self-heal يضمن إعادة التغييرات في المجموعة إلى الحالة المحددة في Git، و--prune يضمن حذف الموارد التي تمت إزالتها من Git من المجموعة أيضًا.

الخطوة 3: مراقبة النشر وإدارته

بمجرد إنشاء التطبيق، يمكنك التحقق من حالته من واجهة الويب لـ Argo CD أو باستخدام واجهة سطر الأوامر:

argocd app get nginx-gitops
argocd app sync nginx-gitops

بعد فترة وجيزة، سيقوم Argo CD بسحب البيانات من مستودعك وتطبيقها على مجموعة Kubernetes الخاصة بك. سترى أن التطبيق يعمل بشكل صحي ومتزامن مع Git. إذا قمت بإجراء تغيير في ملف nginx-app.yaml في مستودع Git الخاص بك ونفذته (على سبيل المثال، تغيير عدد النسخ المتماثلة إلى 3)، فسيكتشف Argo CD هذا التغيير تلقائيًا ويطبقه على مجموعتك.

أفضل الممارسات مع GitOps و Argo CD

  • مصدر واحد للحقيقة: احتفظ بجميع تكوينات تطبيقاتك وبنيتك التحتية في مستودع Git واحد لتبسيط عملية التدقيق.
  • استراتيجيات للبيئات المتعددة: استخدم أدلة أو فروع منفصلة للبيئات المختلفة مثل التطوير والاختبار والإنتاج. قم بتخصيص نفس البيانات الأساسية للبيئات المختلفة باستخدام أدوات مثل Kustomize أو Helm.
  • عمليات نشر بدون ثقة: يقلل عمل Argo CD داخل مجموعة Kubernetes، مما يتطلب وصولًا خارجيًا أقل، من مخاطر الأمان.
  • القدرة على الاستعادة: استفد من مزايا التحكم في الإصدار التي يوفرها Git لإجراء عمليات استعادة سريعة وموثوقة في حالة النشر الخاطئ.
  • التنبيهات والإشعارات: ادمج Argo CD مع أدوات المراقبة مثل Prometheus و Grafana وأنظمة الإشعارات مثل Slack والبريد الإلكتروني لتكون على دراية فورية بالاستثناءات أو مشكلات المزامنة.

الخاتمة

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

العودة إلى المدونة

التعليقات (0)

لا توجد تعليقات بعد. كن أول من يعلق!

إرسال التعليق