ae
لغة
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
ترجمة AI
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Redmine في Kubernetes - الجزء 1: إعداد البيئة

12/16/2023
5 minutes
لوكاس بينا

في هذه السلسلة المكونة من جزئين، سنقوم بنشر Redmine في Kubernetes. سنستخدم الأدوات والممارسات الموصى بها بهدف نشر نسخة قوية من Redmine عبر HTTPS.

لقد قسمنا هذا الدليل التعليمي إلى جزئين للتركيز أولاً على تثبيت الأدوات والمكونات التي ستستخدمها نشر Redmine. ولكن لا تقلق بشأن التعقيد. حتى إذا كنت جديدًا على Kubernetes ، فسيكون الشرح مفهومًا.

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

لا يتم اعتبار بيئات مثل microk8s أو minikube هنا لأنها تتطلب بعض التكوينات الإضافية التي تتجاوز نطاق هذا الدليل. على وجه الخصوص ، يتطلب تكويننا HTTPS أن يكون لدينا عنوان IP العام في عنق الزجاجة.


لنستخدم Helm

Kubernetes هي أداة معقدة لـ تنسيق الحاويات. هناك العديد من المفاهيم التي نحتاج إلى تعلمها للبدء. لحسن الحظ ، هناك مشروع يسمى Helm يوفر مستوى التجريد الذي نحتاجه. بكلماتهم الخاصة "إذا فعلنا الأمور بشكل صحيح ، يمكن للمستخدمين تثبيت Helm وبعد دقائق قليلة تثبيت مكونات جاهزة للإنتاج"

بغض النظر عن الأسباب التي تدعو إلى أسمائهم (فهي تحكي قصة مجازية عن Helm و Kubernetes و Containers) ، فإن Helm يبسط التثبيت حقًا مع إمكانية تخصيص المكون وفقًا لاحتياجاتنا. سنستخدم Helm 3 ، الإصدار الأحدث والأبسط حتى الآن.

إذا كنت تستخدم واجهة سطر الأوامر السحابية المقدمة من مزود السحابة الخاص بك ، فمن المحتمل أن Helm 3 متاح بالفعل ، ولكن إذا لم يكن كذلك ، يمكنك تثبيته ب

تثبيت تحكم الإدخال

هذا هو أول مكون سنقوم بتثبيته في عنقودنا وهو أيضًا أول مفهوم لكوبرنيتيس سنراه. يجلس تحكم الإدخال عند باب الدخول إلى عنقودك ، ويستقبل جميع طلبات الويب ويعيد توجيهها إلى المكون الداخلي المسؤول عن الرد على الطلب. في البداية ، لن يكون هناك أحد مستعدًا للرد ، ولكن عند تثبيت Redmine ، سيتم إضافته كـ وجهة للطلبات.

يوفر كوبرنيتيس تحكم إدخال NGINX الذي سنستخدمه. تشرح وثائقهم كيفية تثبيته باستخدام Helm:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo update

helm install ingress-controller ingress-nginx/ingress-nginx

الأمر الأول يضيف مستودع التطبيقات حيث يوجد تحكم الإدخال ، بينما يقوم الأمر الثاني بتثبيته في عنقودك. عند الانتهاء ، سيقوم الأمر بطباعة بعض المعلومات للبدء ، بما في ذلك كيفية الحصول على عنوان IP العام المخصص للتحكم:

kubectl get services --watch

سيكون النتيجة مشابهة لهذا:

NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)          AGE

nginx-controller       LoadBalancer   10.0.115.117   89.68.23.33   80/TCP,443/TCP   5m22s

controller-admission   ClusterIP      10.0.135.226   <none>           443/TCP          5m22s

kubernetes             ClusterIP      10.0.0.1       <none>           443/TCP          44h

قم بتدوين عنوان الـ EXTERNAL-IP حيث سنحتاج إليه في الخطوة التالية. قد يحدث أنه بدلاً من عنوان IP ، يكون القيمة التي تحصل عليها هنا هي <pending>. يستغرق بعض الوقت للحصول على عنوان IP العام وتعيينه لعنقودك. فقط انتظر بضع ثوانٍ إضافية ويجب أن يكون العنوان IP متاحًا.


إنشاء سجل DNS A

الآن بعد أن حصلت على عنوان IP يمكنك فقط الذهاب إلى المتصفح ومشاهدة كيف يرد عليك عنوان IP الخاص بك. بالطبع، نظرًا لعدم تثبيت أي تطبيق حتى الآن، سيُرد العنوان IP الخاص بك بخطأ "404 Not Found". سنقوم بإنشاء نطاق DNS يمكننا ربطه بذلك العنوان IP، على أمل أن يكون أسهل تذكرًا من قائمة من الأرقام والنقاط.

طريقة إنشاء نطاق إنترنت لـ Redmine الخاص بك تعتمد بشكل كبير على مزود النطاق الخاص بك، ولكن في جميع الحالات، ستنتهي بإنشاء سجل DNS A يربط اسم النطاق بعنوان IP الخاص بك. انظر كمرجع للشاشة التالية من موفر خدمة DNS no-ip.com.

إنشاء سجل DNS A الخاص بنا

البيانات التي يجب إكمالها، كما قد تتوقع، هي اسم DNS وعنوان IP. No-IP هو بالضبط ما نحتاجه لتوضيح إنشاء نطاق، ولكن ربما تكون لديك أو ستختار مزود DNS مختلف. العملية مشابهة تمامًا في جميعها.

يستغرق بعض الوقت لانتشار السجل الجديد، لذا يمكنك استخدام ping للتحقق متى يتم حل العنوان IP بشكل صحيح:

ping redminek8s.ddns.net


الخطوات التالية

الآن بعد أن لدينا تحكم الوصول ونطاق DNS الوحيد المتبقي هو تكوين HTTPS لموقعنا وتثبيت Redmine. سنستخدم PostgreSQL كقاعدة بياناتنا، ولكن سترى مدى سهولة تكوين كل شيء باستخدام Helm.

ابق على اطلاع في Redmine in Kubernetes Part 2: Installing Redmine.

الترقية النهائية لـ Redmine؟ سهلة.

احصل على جميع الأدوات القوية لتخطيط المشروع المثالي وإدارته والسيطرة عليه في برنامج واحد.

جرب Easy Redmine في تجربة مجانية لمدة 30 يومًا

ميزات كاملة، محمية SSL، نسخ احتياطية يومية، في موقعك الجغرافي