إذا كان 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 الخاصة بك.