ما Kubernetes Ingress؟

مؤلف

Ravi Saraswathi

IBM Chief Architect

IBM Blog

تعريف Kubernetes Ingress

Kubernetes Ingress هو كائن واجهة برمجة تطبيقات (API) يوفر قواعد توجيه لإدارة وصول المستخدمين الخارجيين إلى الخدمات في مجموعة Kubernetes.

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

خيارات لعرض التطبيقات المنشورة في Kubernetes

هناك عدة طرق لعرض تطبيقك خارج مجموعة Kubernetes الخاصة بك، وستحتاج إلى تحديد الطريقة المناسبة بناءً على حالة الاستخدام الخاصة بك. 

الخيارات الأربعة الرئيسية التي سنقارنها في هذا المنشور هي: ClusterIP وNodePort وLoadBalancer و Ingress. يوفر كل منها طريقة لعرض الخدمات وهي مفيدة في مواقف مختلفة. الخدمة هي في الأساس واجهة أمامية للتطبيق تقوم بإعادة توجيه حركة المرور تلقائيًا إلى الحجيرات المتاحة بطريقة موزعة بالتساوي. الخدمات هي طريقة مجردة لعرض تطبيق يعمل على مجموعة من الحجيرات كخدمة شبكة. الحجيرات غير قابلة للتغيير، ما يعني أنها عندما تتوقف عن العمل، لا يمكن إعادة تشغيلها. تقوم المجموعة بإنشاء حجيرات جديدة في العقدة نفسها أو في عقدة جديدة بمجرد توقف عمل الحجيرات. 

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

بالنسبة إلى الوصول إلى التطبيق الداخلي داخل مجموعة Kubernetes، فإن ClusterIP هي الطريقة المفضلة. إنه إعداد افتراضي في Kubernetes ويستخدم عنوان IP داخليًا للوصول إلى الخدمة.

لعرض خدمة لطلبات الشبكة الخارجية، تعد NodePort وLoadBalancer وIngress خيارات ممكنة. سنلقي نظرة على Ingress أولاً ونقارن بين الخدمات لاحقًا في هذه المقالة.

أحدث الأخبار التقنية، مدعومة برؤى خبراء

ابقَ على اطلاع دومًا بأهم—اتجاهات المجال وأكثرها إثارة للفضول—بشأن الذكاء الاصطناعي والأتمتة والبيانات وغيرها الكثير مع نشرة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.

شكرًا لك! أنت مشترك.

سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجع بيان خصوصية IBM لمزيد من المعلومات.

ما Kubernetes Ingress ولماذا هو مفيد؟

Kubernetes Ingress هو كائن واجهة برمجة تطبيقات (API) يوفر قواعد توجيه لإدارة وصول المستخدمين الخارجيين إلى الخدمات في مجموعة Kubernetes، عادةً عبر HTTPS/HTTP. باستخدام Ingress، يمكنك بسهولة إعداد قواعد لتوجيه حركة المرور من دون إنشاء مجموعة من أدوات موازنة الأحمال أو عرض كل خدمة على العقدة. هذا يجعله الخيار الأفضل للاستخدام في بيئات الإنتاج. 

في بيئات الإنتاج، تحتاج عادة إلى التوجيه المستند إلى المحتوى ودعم بروتوكولات متعددة والمصادقة. يتيح لك Ingress تكوين هذه الإمكانات وإدارتها داخل المجموعة.

يتكون Ingress من كائن Ingress API وIngress Controller. كما تناولنا سابقًا، فإن Kubernetes Ingress هو كائن واجهة برمجة التطبيقات (API) الذي يصف الحالة المطلوبة لعرض الخدمات إلى خارج مجموعة Kubernetes. يُعد Ingress Controller ضروريًا لأنه التنفيذ الفعلي لواجهة برمجة تطبيقات Ingress. تقوم Ingress Controller بقراءة معلومات Ingress Resource ومعالجتها وعادةً ما تعمل كحجيرات داخل المجموعة.

يوفر Ingress ما يلي:

  • عناوين URL التي يمكن الوصول إليها خارجيًا للتطبيقات المنشورة في مجموعة Kubernetes
  • مضيف افتراضي قائم على الاسم ودعم التوجيه المستند إلى URI
  • قواعد موازنة الأحمال وحركة المرور، بالإضافة إلى إنهاء SSL

للاطلاع على نظرة عامة سريعة مصورة لـ Kubernetes Ingress، شاهد الفيديو التالي:

ما Ingress Controller؟

إذا كان Kubernetes Ingress هو كائن واجهة برمجة التطبيقات الذي يوفر قواعد التوجيه لإدارة الوصول الخارجي إلى الخدمات، فإن Ingress Controller هي التنفيذ الفعلي لواجهة برمجة تطبيقات Ingress. عادةً ما تكون Ingress Controller عبارة عن موازن أحمال لتوجيه حركة المرور الخارجية إلى مجموعة Kubernetes الخاصة بك وهي مسؤولة عن خدمات الشبكة L4-L7. 

تشير الطبقة 4 (L4) إلى مستوى الاتصال في مجموعة شبكة OSI—وهي اتصالات خارجية متوازنة الأحمال بطريقة دائرية عبر الحجيرات. تشير الطبقة 7 (L7) إلى مستوى التطبيق في مجموعة OSI—وهي اتصالات خارجية متوازنة الأحمال عبر الحجيرات بناءً على الطلبات. غالبا ما تكون الطبقة 7 مفضلة، ولكن يجب عليك تحديد وحدة تحكم Ingress Controller التي تلبي متطلبات موازنة الأحمال والتوجيه.

Ingress Controller مسؤولة عن قراءة معلومات Ingress Controller ومعالجة تلك البيانات وفقًا لذلك. فيما يلي نموذج لمورد Ingress Resource:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress 
:spec
  :backend
    serviceName:ServiceName
    <servicePort:<Port Number

على سبيل القياس، إذا كان Kubernetes Ingress جهاز كمبيوتر، فإن Ingress Controller هو مبرمج يستخدم الكمبيوتر ويتخذ إجراءات. علاوة على ذلك، تعمل قواعد Ingress Rules كمدير يوجه المبرمج للقيام بالعمل باستخدام الكمبيوتر. Ingress Rules هي مجموعة من القواعد لمعالجة حركة مرور HTTP الواردة. يوجه Ingress من دون قواعد كل حركة المرور إلى خدمة خلفية افتراضية واحدة. 

وإذا أمعنا النظر في التفاصيل، فإن وحدة التحكم Ingress Controller هي تطبيق يعمل في مجموعة Kubernetes ويقوم بتكوين أداة موازنة أحمال HTTP وفقًا لموارد Ingress Resources. يمكن أن تكون أداة موازنة الأحمال برنامجًا يعمل في المجموعة أو أداة موازنة أحمال تعتمد على الأجهزة أو السحابة وتعمل خارجيًا. تتطلب أدوات موازنة الأحمال المختلفة تطبيقات مختلفة لوحدة تحكم Ingress Controller.

تتوفر العديد من وحدات تحكم Ingress Controllers في السوق، ومن المهم اختيار وحدة التحكم المناسبة لإدارة حركة المرور والحمل القادم إلى مجموعة Kubernetes الخاصة بك.

IBM Cloud

Red Hat OpenShift AI on IBM Cloud: نشر أحمال تشغيل الذكاء الاصطناعي

استخدام قدرات الذكاء الاصطناعي مع Red Hat OpenShift on IBM Cloud. يستكشف هذا الفيديو كيفية إنشاء أحمال تشغيل الذكاء الاصطناعي ونشرها وإدارتها بكفاءة باستخدام منصة العمليات القابلة للتطوير للتعلم الآلي.

Ingress في مقابل ClusterIP في مقابل NodePort في مقابل LoadBalancer

إن Ingress، وClusterIP، وNodePort، وLoadBalancer كلها طرق لإدخال حركة المرور الخارجية إلى مجموعتك، وكل منها يفعل ذلك بطريقة مختلفة. دعنا نلقي نظرة على كيفية عمل كل منها وأين ستستخدمها.

ClusterIP

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

NodePort

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

أداة موازنة الأحمال

تستخدم هذه الطريقة موازن أحمال خارجيًا لعرض الخدمات للإنترنت. يمكنك استخدام LoadBalancer في بيئة إنتاج، ولكن غالبًا ما يفضل استخدام Ingress.

Ingress

يمكّنك Ingress من دمج قواعد توجيه حركة المرور في مورد واحد ويعمل كجزء من مجموعة Kubernetes. من أسباب تفضيل Kubernetes Ingress لعرض خدمة في بيئة إنتاج ما يلي:

  • يتحكم في توجيه حركة مرور القواعد المحددة في Ingress Resource.
  • يعد Ingress جزءًا من مجموعة Kubernetes ويعمل كحجيرات.
  • تُعد أداة موازنة الأحمال الخارجية مكلفة، وتحتاج إلى إدارة هذا خارج مجموعة Kubernetes. يُدار Kubernetes Ingress من داخل المجموعة.

في بيئات الإنتاج، يمكنك عادة استخدام Ingress لعرض التطبيقات على الإنترنت. يمكن الوصول إلى التطبيق من الإنترنت عبر المنفذين Port 80 (HTTP) أو Port 443 (HTTPS)، وIngress هو كائن يسمح بالوصول إلى خدمات Kubernetes الخاصة بك من خارج المجموعة. 

تنفيذي

تتيح لك واجهة برمجة تطبيقات Kubernetes Ingress API عرض التطبيقات المنشورة في مجموعة Kubernetes على الإنترنت باستخدام قواعد التوجيه في مصدر واحد. لتطبيق Ingress، تحتاج إلى تكوين وحدة تحكم Ingress Controller في مجموعتك—فهي مسؤولة عن معالجة معلومات Ingress Resource والسماح بحركة المرور بناءً على قواعد Ingress Rules. من المهم اختيار الخدمة المناسبة مع التكوين المناسب لعرض تطبيقك على الإنترنت بناءً على الإرشادات المذكورة أعلاه. 

حلول ذات صلة
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud هي منصة حاويات OpenShift (OCP) المُدارة بالكامل.

استكشف Red Hat OpenShift
حلول الحاويات

تنفذ حلول الحاويات أعباء عمل الحاويات وتوسع نطاقها مع ميزات الأمان والابتكار مفتوحة المصدر والنشر السريع.

استكشف الحاويات
خدمات الاستشارات السحابية 

أطلق العنان للقدرات الجديدة وحفِّز مرونة الأعمال من خلال خدمات الاستشارات السحابية من IBM. اكتشف كيفية المشاركة في إنشاء الحلول وتسريع التحول الرقمي وتحسين الأداء من خلال إستراتيجيات السحابة الهجينة والشراكات مع الخبراء.

الخدمات السحابية
اتخِذ الخطوة التالية

ابدأ باستخدام منصة Red Hat OpenShift المدارة بالكامل أو استكشف مرونة نظام IBM Cloud Kubernetes. تمكَّن من تسريع عملية التطوير والنشر لديك من خلال حلول قابلة للتوسع وآمنة ومصممة لتلبية احتياجاتك.

استكشف Red Hat OpenShift استكشف Kubernetes