CloudSigma PaaS يسمح للمستخدمين بتمكين الوصول إلى تطبيقاتهم باستخدام عنوان IP عام. يجب ربط هذا العنوان بعقدة من عنقود Kubernetes . هناك طريقتان لتحقيق ذلك في بيئة CloudSigma PaaS:
- الطريقة الأولى هي ربط عنوان IP العام بموازن تحميل مخصص.

- الطريقة الأخرى هي ربط عنوان IP العام بعقدة عاملة (Worker node) من Kubernetes.
في هذا البرنامج التعليمي، سنرشدك إلى كيفية الحصول على حق الوصول إلى تطبيق Kubernetes باستخدام أي من هذين النهجين.
إعداد موازن تحميل مخصص للوصول إلى تطبيق Kubernetes
أولاً، سنتعلم كيفية إعداد موازن تحميل مخصص للوصول إلى التطبيق:
- انتقل إلى CloudSigma Marketplace لتحديد موقع عنقود Kubernetes وتثبيته. بعد ذلك، قم بنشر تطبيقك. كمثال، سنقوم بنشر Jakarta EE Cargo Tracker.
- بجوار عنقود Kubernetes الخاص بك، ابحث وانقر على تغيير توبولوجيا البيئة. في النافذة التي تفتح على شاشتك، أضف عقدة موازن تحميل مخصص. ثم، اربط عنوان IP عام بها كالتالي:

في مثالنا، استخدمنا عقدة موازن التحميل NGINX. هناك العديد من موازنات التحميل الأخرى المتاحة بما في ذلك HAProxy, LS Web ADC، و Varnish. يمكنك اختيار أي منها تفضل استخدامه.
عند الانتهاء من تعديل التوبولوجيا، ستظهر التغييرات المطبقة كالتالي:


3. الخطوة التالية هي إنشاء سجل A لنطاق مخصص. ستستخدم نفس عنوان IP العام الذي استخدمته في الخطوات السابقة. في هذا المثال، سنستخدم cargo-tracker.cloudsigma.website:

4. الآن يمكننا ربط نطاقنا المخصص بعنقود K8s. للقيام بذلك، سنرسل طلباً لإصدار شهادة Let’s Encrypt SSL موثوقة:
- قم بتمرير المؤشر فوق موازن التحميل وانقر على Add-Ons.
- ابحث عن وثبّت Let’s Encrypt Free SSL:

- في التكوين، أدخل اسم النطاق المخصص الخاص بك ثم انقر فوق تثبيت. في حالتنا، اسم النطاق هو كالتالي:

أخيراً، قمنا الآن بإتاحة تطبيقنا بحيث يمكننا الوصول إليه باستخدام النطاق المخصص https://cargo-tracker.cloudsigma.website. لقد قمنا أيضاً بتشفير حركة المرور على تطبيقنا باستخدام شهادة Let’s Encrypt SSL صالحة وموثوقة.
الحصول على حق الوصول إلى التطبيق باستخدام عنوان IP العام لعقدة Kubernetes العاملة
بعد ذلك، سننظر في النهج البديل الذي يمكنك اتباعه لإتاحة التطبيق خارج عنقود Kubernetes. بشكل أساسي، سنتعلم كيفية ربط عنوان IP عام بعقدة عاملة (worker node) في عنقود Kubernetes لجعل التطبيق متاحاً بشكل مباشر:
دعنا نواصل مع نفس المثال الذي عرضناه لك سابقاً. سنستخدم نفس العنقود الذي قمنا بنشر تطبيق Cargo Tracker عليه. إليك كيفية المتابعة:
1. انقر على تغيير توبولوجيا البيئة. أضف عنوان IP العام إلى العقدة العاملة (worker node):

2. بعد ذلك، قم بإنشاء سجل A لنطاقك المخصص وقم بربطه بعنوان IP الذي أضفته للتو. تأكد من استخدام اسم نطاق يختلف عن الاسم المستخدم في الفصل السابق. على سبيل المثال، سنستخدم اسم النطاق التالي: cargo-tracker-worker.cloudsigma.website:

3. قم بتمرير المؤشر فوق عقدة Control Plane أو عقدة Master وانقر على Add-Ons. حدد موقع وثبّت Certificate Manager. سيؤدي هذا إلى تثبيت وحدة تحكم cert-manager جنباً إلى جنب مع وحدة تحكم NGINX ingress بنوع خدمة LoadBalancer. تحتوي الأخيرة على عنوان IP المرتبط بالعقدة العاملة الخاصة بك. وستقوم بخدمة موارد فئة ingress لـ “nginx-cert”:

4. في الحقل المخصص، أدخل اسم النطاق المفضل لديك وانقر على تطبيق:

5. في وقت التثبيت، تقوم الوظيفة الإضافية أيضاً بتثبيت تطبيق تجريبي يسمى helloworld-cert. يمكنك ببساطة حذف الموارد التي يستخدمها باستخدام هذه الأوامر:
|
1 2 3 4 5 |
$ kubectl delete deploy hello-cert-manager $ kubectl delete svc hello-cert-manager $ kubectl delete ing helloworld-cert |
يجب إدخال هذه الأوامر وتنفيذها باستخدام SSH (SFTP) أو Web SSH Gate لـ Control Plane أو Master Node. قم بتمرير مؤشر الماوس فوق العقدة وانقر على Web SSH الخيار المجاور لها للوصول إلى البوابة.
الخيار الآخر هو تمرير مؤشر الماوس فوق Control Plane أو Master Node والنقر على Config. من هنا، انتقل إلى SFTP/SSH Gate واتبع التعليمات المقدمة.
6. من أجل إنهاء حركة مرور SSL الخاصة بالتطبيق ومعالجة التوجيه إلى خدمة cargo-tracker، نحتاج إلى إنشاء مورد ingress يسمى cargo-tracker-worker. لنفترض أننا نستخدم cargo-tracker-worker-ingress.yaml. يمكنك استخدام محرر مثل vi لإنشاء ملف ثم لصق الكود التالي:
|
1 |
vi cargo-tracker-worker-ingress.yaml |
بعد ذلك، تابع على النحو التالي:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cargo-tracker-worker namespace: default annotations: kubernetes.io/ingress.class: nginx-cert cert-manager.io/cluster-issuer: "letsencrypt-prod" kubernetes.io/tls-acme: "true" nginx.ingress.kubernetes.io/affinity: "cookie" nginx.ingress.kubernetes.io/affinity-mode: "persistent" nginx.ingress.kubernetes.io/session-cookie-expires: "172800" nginx.ingress.kubernetes.io/session-cookie-max-age: "172800" spec: tls: - hosts: - cargo-tracker-worker.cloudsigma.website secretName: external-domain-tls rules: - host: cargo-tracker-worker.cloudsigma.website http: paths: - path: / pathType: ImplementationSpecific backend: service: name: cargo-tracker port: number: 80 |
|
1 |
$ kubectl apply -f cargo-tracker-worker-ingress.yaml |
7. عند إنشاء ingress هذا، سيقوم Certificate Manager تلقائيًا بإصدار شهادة Let’s Encrypt SSL لاسم النطاق الجديد الخاص بك. امنح النظام دقيقة أو دقيقتين قبل التحقق مما إذا كان تطبيقك متاحًا على اسم النطاق المخصص الجديد، وهو https://cargo-tracker-worker.cloudsigma.website في حالتنا.
وهكذا! باتباع هذه الخطوات، قمت بنشر تطبيقك باستخدام طريقتين مختلفتين. ونتيجة لذلك، سترى اثنين من الـ ingresses. بالنسبة لنا، هما:
- cargo-tracker
يخدم ingress هذا حركة مرور التطبيق التي تأتي عبر عنوان IP العام لموازن التحميل المخصص لك.
- cargo-tracker-worker
تم إعداد ingress هذا لخدمة حركة مرور التطبيق التي تتدفق مباشرة من عنوان IP المرفق بعقدة عامل K8s.
هذا هو الشكل الذي ستظهر به:

بناءً على نوع التنفيذ الذي تختاره، ستحتاج فقط إلى ingress واحد في بيئة الإنتاج. تمنح CloudSigma PaaS مستخدميها إمكانية الوصول إلى عدد من الأدوات لإجراء موازنة التحميل حسب ما تتطلبه تطبيقاتهم. لا تتردد في القراءة ومعرفة المزيد عن موازنة التحميل على المنصة. لدينا أيضًا أدلة مفصلة حول أساسيات موازنة التحميل باستخدام أدوات مثل NGINX و HAProxy من بين الأدوات الأخرى المتاحة.
يمكنك تجربة CloudSigma’s PaaS من خلال فترة تجريبية مجانية لمدة 7 أيام أو الاتصال بنا إذا كنت تريد منا تزويدك بمزيد من التفاصيل وعرض توضيحي للمنصة.

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