أحدث الأخبار التقنية، مدعومة برؤى خبراء
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
Kubernetes Ingress هو كائن واجهة برمجة تطبيقات (API) يوفر قواعد توجيه لإدارة وصول المستخدمين الخارجيين إلى الخدمات في مجموعة Kubernetes.
في هذه المقالة، سنلقي نظرة على الكيفية والأسباب التي قد تجعلك بحاجة إلى عرض تطبيق ما خارج مجموعة Kubernetes الخاصة بك، والخيارات المختلفة المتاحة، والمواقف التي يكون فيها Kubernetes Ingress أكثر فائدة. تفترض هذه المدونة أن لديك فهمًا أساسيًا لـ Kubernetes، ولكن إذا كنت بحاجة إلى مزيد من المعلومات الأساسية، فراجع الموارد التالية:
هناك عدة طرق لعرض تطبيقك خارج مجموعة Kubernetes الخاصة بك، وستحتاج إلى تحديد الطريقة المناسبة بناءً على حالة الاستخدام الخاصة بك.
الخيارات الأربعة الرئيسية التي سنقارنها في هذا المنشور هي: ClusterIP وNodePort وLoadBalancer و Ingress. يوفر كل منها طريقة لعرض الخدمات وهي مفيدة في مواقف مختلفة. الخدمة هي في الأساس واجهة أمامية للتطبيق تقوم بإعادة توجيه حركة المرور تلقائيًا إلى الحجيرات المتاحة بطريقة موزعة بالتساوي. الخدمات هي طريقة مجردة لعرض تطبيق يعمل على مجموعة من الحجيرات كخدمة شبكة. الحجيرات غير قابلة للتغيير، ما يعني أنها عندما تتوقف عن العمل، لا يمكن إعادة تشغيلها. تقوم المجموعة بإنشاء حجيرات جديدة في العقدة نفسها أو في عقدة جديدة بمجرد توقف عمل الحجيرات.
على غرار الحجيرات والنشر، تعد الخدمات موارد في Kubernetes. توفر الخدمة نقطة وصول واحدة من خارج المجموعة وتسمح لك بالوصول ديناميكيًا إلى مجموعة من الحجيرات المتماثلة.
بالنسبة إلى الوصول إلى التطبيق الداخلي داخل مجموعة Kubernetes، فإن ClusterIP هي الطريقة المفضلة. إنه إعداد افتراضي في Kubernetes ويستخدم عنوان IP داخليًا للوصول إلى الخدمة.
لعرض خدمة لطلبات الشبكة الخارجية، تعد NodePort وLoadBalancer وIngress خيارات ممكنة. سنلقي نظرة على Ingress أولاً ونقارن بين الخدمات لاحقًا في هذه المقالة.
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
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 ما يلي:
للاطلاع على نظرة عامة سريعة مصورة لـ Kubernetes Ingress، شاهد الفيديو التالي:
إذا كان 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 الخاصة بك.
إن Ingress، وClusterIP، وNodePort، وLoadBalancer كلها طرق لإدخال حركة المرور الخارجية إلى مجموعتك، وكل منها يفعل ذلك بطريقة مختلفة. دعنا نلقي نظرة على كيفية عمل كل منها وأين ستستخدمها.
ClusterIP هو الخيار المفضل للوصول إلى الخدمة الداخلية ويستخدم عنوان IP داخليًا للوصول إلى الخدمة. تتضمن بعض الأمثلة على الحالات التي قد يكون فيها ClusterIP الخيار الأفضل: تصحيح أخطاء الخدمة في أثناء التطوير والاختبار، وحركة المرور الداخلية، ولوحات المعلومات.
NodePort عبارة عن جهاز افتراضي (VM) يستخدم لعرض خدمة على رقم منفذ ثابت. يستخدم بصورة أساسية لعرض الخدمات في بيئة غير إنتاجية (في الواقع، لا ينصح باستخدامه في بيئة إنتاجية). على سبيل المثال، يمكن استخدام NodePort لعرض خدمة واحدة (من دون متطلبات موازنة الأحمال لخدمات متعددة).
تستخدم هذه الطريقة موازن أحمال خارجيًا لعرض الخدمات للإنترنت. يمكنك استخدام LoadBalancer في بيئة إنتاج، ولكن غالبًا ما يفضل استخدام Ingress.
يمكّنك Ingress من دمج قواعد توجيه حركة المرور في مورد واحد ويعمل كجزء من مجموعة Kubernetes. من أسباب تفضيل Kubernetes Ingress لعرض خدمة في بيئة إنتاج ما يلي:
في بيئات الإنتاج، يمكنك عادة استخدام Ingress لعرض التطبيقات على الإنترنت. يمكن الوصول إلى التطبيق من الإنترنت عبر المنفذين Port 80 (HTTP) أو Port 443 (HTTPS)، وIngress هو كائن يسمح بالوصول إلى خدمات Kubernetes الخاصة بك من خارج المجموعة.
تتيح لك واجهة برمجة تطبيقات Kubernetes Ingress API عرض التطبيقات المنشورة في مجموعة Kubernetes على الإنترنت باستخدام قواعد التوجيه في مصدر واحد. لتطبيق Ingress، تحتاج إلى تكوين وحدة تحكم Ingress Controller في مجموعتك—فهي مسؤولة عن معالجة معلومات Ingress Resource والسماح بحركة المرور بناءً على قواعد Ingress Rules. من المهم اختيار الخدمة المناسبة مع التكوين المناسب لعرض تطبيقك على الإنترنت بناءً على الإرشادات المذكورة أعلاه.
ملاحظة ومراقبة وإصلاح مجموعة Kubernetes بأكملها تلقائيًا لتحسين أداء وتوفّر تطبيقك.
تسريع نمو ومرونة الأعمال—حدِّث تطبيقاتك باستمرار على أي منصة باستخدام خدماتنا السحابية والاستشارات التي نقدِّمها.
حلول الحاويات تقوم بتشغيل وتوسيع نطاق أحمال التشغيل التي تعمل ضمن حاويات بأمان وابتكار مفتوح المصدر ونشر سريع.