Ingress: Ingress Object + Ingress Controller
इनग्रेड ऑब्जेक्ट:
एक सेवा वस्तु की तरह, सिवाय इसके कि यह अपने आप कुछ नहीं करती है। एक इनग्रेड ऑब्जेक्ट सिर्फ अनुरोध पथ, अनुरोध डोमेन और लक्ष्य कुबेरनेट सेवा जैसी चीजों को निर्दिष्ट करके, अपने क्लस्टर में लेयर 7 ट्रैफ़िक को रूट करने का एक तरीका बताता है, जबकि एक सेवा ऑब्जेक्ट वास्तव में सेवाएं बनाता है
इनग्रेस कंट्रोलर:
एक सेवा जो:
1. listens on specific ports (usually 80 and 443) for web traffic
2. Listens for the creation, modification, or deletion of Ingress Objects
3. Creates internal L7 routing rules based on these Ingress Objects
उदाहरण के लिए, Nginx Ingress नियंत्रक, पोर्ट 80 और 443 को सुनने के लिए एक सेवा का उपयोग कर सकता है और फिर नई Ingress ऑब्जेक्ट्स पढ़ सकता है और उन्हें नए सर्वर {} अनुभागों में पार्स कर सकता है जो इसे गतिशील रूप से nginx.conf में रखता है।
LoadBalancer: एक्सटर्नल लोड Balancer प्रदाता + सेवा प्रकार
बाहरी लोड बैलेंसर प्रदाता:
बाहरी लोड बैलेंसर प्रदाता आमतौर पर AWS और GKE जैसे बादलों में कॉन्फ़िगर किए जाते हैं और बाहरी लोड बैलेंसरों के निर्माण के माध्यम से बाहरी आईपी को असाइन करने का एक तरीका प्रदान करते हैं। इस कार्यक्षमता का उपयोग सेवा को "लोडबेलर" प्रकार के रूप में नामित करके किया जा सकता है।
सेवा प्रकार:
जब सेवा प्रकार LoadBalancer के लिए सेट किया जाता है, तो Kubernetes, Kubernetes पॉड्स के लिए प्रविष्टियों के साथ एक बाहरी लोड बैलेंसर बनाने का प्रयास करता है, जिससे उन्हें बाहरी IP असाइन किया जाता है।
कुबेरनेट्स सेवा नियंत्रक बाहरी लोड बैलेंसर, स्वास्थ्य जांच (यदि आवश्यक हो), फ़ायरवॉल नियमों (यदि आवश्यक हो) के निर्माण को स्वचालित करता है और नव निर्मित या कॉन्फ़िगर किए गए लोडबॉलर के बाहरी आईपी को पुनर्प्राप्त करता है जो क्लाउड प्रदाता द्वारा आवंटित किया गया था और इसमें पॉपुलेट करता है सेवा वस्तु।
रिश्तों:
Ingress Controller Services को अक्सर LoadBalancer प्रकार के रूप में प्रावधान किया जाता है, ताकि http और https अनुरोधों को बाहरी IP के माध्यम से विशिष्ट आंतरिक सेवाओं के लिए अनुमानित / रूट किया जा सके।
हालाँकि, इसके लिए एक LoadBalancer की कड़ाई से आवश्यकता नहीं है। चूंकि, hostNetwork या hostPort के उपयोग के माध्यम से आप तकनीकी रूप से होस्ट पर एक पोर्ट को एक सेवा में बाँध सकते हैं (आपको इसे मेजबान बाहरी आईपी: पोर्ट के माध्यम से देखने की अनुमति देता है)। हालांकि आधिकारिक तौर पर यह अनुशंसित नहीं है क्योंकि यह वास्तविक नोड पर बंदरगाहों का उपयोग करता है।
संदर्भ:
https://kubernetes.io/docs/concepts/configuration/overview/#services
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#external-load-balancer-providers
https://kubernetes.io/docs/concepts/services-networking/ingress/