مقدمة
Kubernetes أصبح معيارًا لنشر التطبيقات الكبيرة. فهو يساعد المطورين على اكتساب مزايا كبيرة ويقدم ميزات غير متوفرة في استضافة الخوادم التقليدية. يتيح Kubernetes التوسع الأفقي دون عناء البنية التحتية. علاوة على ذلك، فإنه يقلل من تكلفة الحصول على البنية التحتية وصيانتها مع نمو التطبيق.
ومع ذلك، فإن إدارة التطبيقات على Kubernetes يمكن أن تكون معقدة أيضًا وتتطلب مهارات متقدمة. يساعد نشر التطبيقات باستخدام Kubernetes و Continuous Integration and Continuous Deployment (CI/CD) في التغلب على هذه العملية المعقدة من خلال توفير التجريد. GitOps هي إحدى الأدوات التي يمكن أن تساعد في تحقيق التجريد.
في هذا البرنامج التعليمي، سنوضح كيفية استخدام Argo CD لدمج ونشر التطبيقات باستمرار على Kubernetes. كلما تم دفع أي تغيير إلى المستودع، يتم نشره على المجموعة المستهدفة. Argo CD أيضًا عناصر التحكم في الإصدار والتكوينات وبيئات التطبيقات من خلال التكامل مع دورة حياة تطوير البرمجيات بأكملها. إذا كان لديك مديرو حزم لـ Kubernetes مثل Helm، أو إذا كان مستودعك مستضافًا على BitBucket أو GitLab، فيمكن لـ Argo CD التكامل بسلاسة مع جميع هذه المنصات أيضًا.
المتطلبات الأساسية
لإكمال هذا البرنامج التعليمي، يجب أن يتوفر لديك:
-
مفاتيح SSH على جهازك. إذا لم يكن لديك زوج من مفاتيح SSH يعمل على Linux/MacOS/BSD، فيمكنك إنشاء واحد باتباع برنامجنا التعليمي SSH Overview – SSH Servers, Clients, and Keys.
-
ستحتاج أيضًا إلى تشغيل مجموعة Kubernetes. بالإضافة إلى ذلك، يجب أن يكون لديك kubectl يعمل على جهازك. إذا لم يكن لديك مجموعة Kubernetes، فيمكنك اتباع How To Create a Kubernetes Cluster Using Kubeadm on Ubuntu 18.04.
-
يجب أن يكون لديك فهم أساسي لمفاهيم Kubernetes. إذا كنت ترغب في التعرف على Kubernetes بشكل أكبر، فيمكنك اتباع Getting to know the basics of the Kubernetes tool.
الخطوة 1 – تثبيت Argo CD
قبل أن نتمكن من تثبيت Argo CD، نحتاج إلى تشغيل بيئة Kubernetes مع kubectl. يمكنك اختبار ذلك عن طريق تشغيل الأمر أدناه:
|
1 |
kubectl get nodes |

يجب أن ترى عقدة Kubernetes واحدة على الأقل تعمل في حالة Ready. إذا لم تكن هناك عقدة متاحة، فيجب عليك إعادة التحقق من تثبيت Kubernetes الخاص بك. بعد ذلك، سنقوم بإنشاء مساحة اسم منفصلة لتثبيت Kubernetes الخاص بنا. لنطلق عليها اسم argocd. سنحتفظ بالخدمة المتعلقة بـ Argo CD في مساحة الاسم هذه:
|
1 |
kubectl create namespace argocd |
بعد ذلك، قم بتثبيت البرامج النصية لـ Argo CD في مساحة الاسم التي تم إنشاؤها حديثًا أعلاه عن طريق تشغيل الأمر أدناه:
|
1 |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml |

للتحقق من حالة وحدات (pods) Kubernetes، قم بتشغيل الأمر أدناه:
|
1 |
watch kubectl get pods -n argocd |
ستحصل على نتيجة مثل أدناه:

هنا تكون قد انتهيت بنجاح من تثبيت Argo CD. للخروج من واجهة watch، يمكنك الضغط على Ctrl + C. للوصول إلى الخدمات في مجموعة Kubernetes هذه، سنحتاج إلى توجيه المنافذ. سنوضح لك كيفية القيام بذلك في الخطوة التالية.
الخطوة 2 – توجيه المنافذ للوصول إلى Argo CD
يمكن لـ Kubernetes نشر تطبيقك على أي منفذ يختاره. وبالتالي، من الضروري توجيه منافذ تطبيق Kubernetes للوصول إليها من الجهاز المحلي. يعرض Argo CD خدمة تسمى argocd-server والتي تستخدم المنفذ 443. المنفذ 443 هو المنفذ الافتراضي لخدمات HTTPS و HTTP. يمكنك توجيه منافذ Kubernetes إلى منفذ من اختيارك. في مثالنا أدناه، قمنا بتوجيه المنفذ إلى 8080. لتوجيه المنافذ، قم بتشغيل الأمر أدناه في الطرفية (terminal):
|
1 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 |
بمجرد إعادة توجيه المنفذ، سيتم حظره حتى لا تتمكن الخدمات الأخرى من الوصول إليه. للحصول على وصول دون انقطاع، يوصى دائمًا بتشغيل الأمر المذكور أعلاه في طرفية جديدة. بمجرد الانتهاء، يمكنك الضغط على Ctrl+C لإنهاء عملية إعادة توجيه المنفذ.
بعد إعادة توجيه المنفذ، يمكنك الانتقال إلى Argo CD بالانتقال إلى localhost:8080. ستتم مطالبتك ببيانات الاعتماد التي يمكنك الحصول عليها من سطر الأوامر في الخطوة التالية.
Step 3 – Manage Argo CD from the Command Line
يتعين علينا تثبيت واجهة سطر أوامر Argo CD لإدارة تثبيت Argo CD. الطريقة الموصى بها لتثبيت Argo CD هي استخدام مدير حزم مثل Homebrew. إن Homebrew هو أداة إدارة حزم شائعة للتثبيت على نظامي التشغيل macOS و Linux. يمكنك تثبيت Homebrew باستخدام الأمر أدناه:
|
1 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
يجب أن يكون لديك brew مثبتًا على جهازك. قد تظهر مطالبة بكلمة المرور لتسجيل الدخول. يمكنك تشغيله عن طريق تشغيل الأمر أدناه:
|
1 |
brew install argocd |
ستحصل على الأمر argocd بعد التثبيت أعلاه. سنحتاج إلى استرداد كلمة مرور المسؤول باستخدام الأمر kubectl . تم إنشاؤها تلقائيًا أثناء التثبيت. أدناه هو الأمر للحصول عليها:
|
1 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo |
الآن بعد أن قمت بتثبيت Argo CD، يمكنك تسجيل الدخول باستخدام الأمر argocd login أدناه:
|
1 |
argocd login localhost:8080 |
ستحتاج إلى تسجيل الدخول لنشر التطبيق عند استخدام سطر الأوامر:

قد تتلقى تحذيرًا أمنيًا. إذا كان الأمر كذلك، اضغط على y للمتابعة للأمام. قد يرغب العديد من المستخدمين في تغيير كلمة المرور بمجرد تسجيل الدخول. إذا كان الأمر كذلك، فقم بتشغيل الأمر argocd account update-password لتغيير كلمة المرور. لدينا الآن تكوين Argo CD يعمل بكامل طاقته.
أخيرًا، سنقوم بنشر تطبيق على مجموعة Kubernetes باستخدام Argo CD المثبت.
Step 4 – Utilize Multiple Clusters
قبل متابعة إعداد تطبيقك، من الضروري معرفة الجهاز المستهدف الذي تريد نشره فيه. في العديد من السيناريوهات، يمكن تشغيل Argo CD والتطبيق المنشور على نفس المجموعة. هذا هو السلوك الافتراضي لـ Argo CD ولكن هذا ليس قيدًا. إذا كنت تريد نشر التطبيق على أجهزة مستهدفة أخرى، فقم أولاً بتشغيل kubectl config في جهازك:
|
1 |
kubectl config get-contexts -o name |
افترض أنك حصلت على مجموعتين: test-deploy-cluster و test-target-cluster. الآن إذا كانت test-deploy-cluster هي المكان الذي يوجد فيه Argo CD وتريد النشر على test-target-cluster، فقم بتشغيل الأمر أدناه:
|
1 |
argocd cluster add target-k8s |
سيضيف الأمر أعلاه تفاصيل المجموعة الإضافية على Argo CD. سيسمح أيضًا بنشر الخدمات على مجموعة Argo CD المستهدفة.
Step 5 – Deploy an Example Application
لقد حان الوقت أخيرًا لنشر التطبيقات على مجموعة Kubernetes. سنستخدم التطبيقات التجريبية التي يوفرها Argo CD. سنستخدم أيضًا helm-guestbook الذي تم بناؤه باستخدام Helm مخططات.
لتثبيت التطبيق، سنستخدم الأمر argo app create . سنحدد مستودع Git, helm-guestbook ، وتمرير وجهتك الافتراضية ومساحة الاسم (namespace):
|
1 |
argocd app create helm-guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path helm-guestbook --dest-server https://kubernetes.default.svc --dest-namespace default |
يمكنك التحقق من حالة التطبيق الذي تم إنشاؤه حديثًا عن طريق تشغيل argocd app get:
|
1 |
argocd app get helm-guestbook |
لا تتفاجأ إذا رأيت OutOfSync . حتى الآن قمنا بتنزيل مخطط Helm وإنشاء نقطة دخول إليه لـ Argo CD. ومع ذلك، في جانب Kubernetes، لا يوجد أي مورد مخصص له. لـ مزامنة هذا التطبيق، قم بتشغيل الأمر أدناه:
|
1 |
argocd app sync helm-guestbook |

عند العمل مع GitOps، يلزم دائمًا مزامنة التطبيق مع المستودع الرئيسي (upstream). وبالتالي، كلما حدث تغيير في المستودع، يقوم Argo CD بنشر التطبيق.
لقد قمنا بنشر التطبيق باستخدام واجهة سطر أوامر Argo CD. يمكنك تحقيق نفس النتيجة باستخدام واجهة ويب Argo CD. واجهة الويب مفيدة جدًا إذا كنت ترغب في التحقق من حالة التطبيق وتشغيله. لفتح واجهة الويب، افتح localhost:8080:

للتحقق من التثبيت، سنقوم بفتح التطبيق في المتصفح. تطبيق helm-guestbook يعمل على المنفذ 80. إذا كان لديك أي تطبيق آخر يستخدم المنفذ 80، يمكنك توجيه المنفذ حتى لا يتم مقاطعة التطبيقات الأخرى:
|
1 |
kubectl port-forward svc/helm-guestbook 9090:80 |
أخيرًا، افتح رابط URL localhost:9090 على متصفح الويب الخاص بك لرؤية تطبيقك قيد التشغيل:

الآن إذا قام المطور بدفع أي كود إلى مستودع Github البعيد، فسيقوم ArgoCD بالتقاطه وعكسه. سيتم تحديث عمليات نشر ArgoCD الخاصة بك وفقًا لذلك مما يوفر توفرًا مستمرًا.
الخاتمة
في هذا البرنامج التعليمي، أوضحنا لك كيفية تثبيت ونشر التطبيقات على Kubernetes باستخدام Argo CD. من المهم التأكد من أن عمليات النشر الخاصة بك على Kubernetes قابلة للصيانة. يمكن أن يساعدك GitOps كثيرًا في هذا الصدد.
أصبحت Kubernetes الآن هي المعيار لعمليات النشر على السحابة. تمتلك Cloudsigma بعض البرامج التعليمية الرائعة حول Kubernetes التي يمكنك الاطلاع عليها بعد ذلك:
- خدمة Kubernetes DNS: دليل للمبتدئين
- إعداد WordPress مع MySQL على Kubernetes باستخدام Helm
- تثبيت Jenkins على Kubernetes
- استكشاف CloudSigma PaaS: كيفية الوصول إلى تطبيق Kubernetes عبر عنوان IP عام
حوسبة سعيدة!
التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.