الدرس 9: كشف التطبيقات — LoadBalancer وIngress وDNS
في الدرس السابق تعرّفنا على Service من نوع ClusterIP — عنوان ثابت واسم DNS يربطان بالـ Pods، لكن فقط من داخل العنقود. الآن السؤال هو كيف يصل زائر من الخارج (من الإنترنت) إلى التطبيق. سنتعرّف على ثلاث درجات من الكشف. يبقى ClusterIP داخليًا فقط، بينما يحصل LoadBalancer على عنوان IP خارجي حقيقي ويمرّر
ClusterIP هو هاتف مكتب داخلي؛ وLoadBalancer هو رقم خارجي يمكن لأي أحد الاتصال به؛ وIngress هو بهو المبنى الذي يرسل كل زائر إلى المكتب الصحيح حسب الاسم المكتوب على الباب.
- Ingress
- كائن يوجّه حركة مرور HTTP/HTTPS الخارجية إلى Services داخلية حسب اسم المضيف (host) والمسار (path). يوفّر نقطة دخول واحدة لتطبيقات عديدة. يحتاج إلى Ingress Controller يعمل داخل العنقود لتطبيق القواعد.
- LoadBalancer
- نوع من Service يطلب من مزوّد السحابة عنوان IP خارجيًا حقيقيًا، ويوازن حركة المرور على مستوى الشبكة (L4) إلى Pods هذا الـ Service. بهذا يصبح التطبيق قابلًا للوصول من خارج العنقود.
- DNS العنقود
- خدمة DNS داخلية تترجم أسماء Services إلى عناوين IP داخل العنقود. يبدو الاسم الكامل هكذا: <service>.<namespace>.svc.cluster.local، مثل web.default.svc.cluster.local.
- ClusterIP
- نوع Service الافتراضي: عنوان IP افتراضي ثابت لا يمكن الوصول إليه إلا من داخل العنقود. ممتاز للتواصل بين المكوّنات الداخلية، لكنه غير قابل للوصول من الخارج.
- NodePort
- نوع Service يفتح منفذًا ثابتًا على كل node في العنقود، بحيث يمكن الوصول إلى الـ Service عبر عنوان الـ node وذلك المنفذ. طريقة بسيطة لكن فظّة للكشف الخارجي.