कुबेरनेट्स इनग्रेस
- कुबेरनेट्स इनग्रेस
परिचय
कुबेरनेट्स क्लस्टर में एप्लिकेशन को बाहरी दुनिया से उजागर करने के लिए इनग्रेस एक महत्वपूर्ण अवधारणा है। यह एक नेटवर्क प्रवेश बिंदु के रूप में कार्य करता है, जो बाहरी अनुरोधों को क्लस्टर के भीतर चलने वाले सेवाओं तक रूट करने की अनुमति देता है। सरल शब्दों में, इनग्रेस आपके कुबेरनेट्स क्लस्टर के लिए एक रिवर्स प्रॉक्सी है। यह लेख शुरुआती लोगों के लिए कुबेरनेट्स इनग्रेस की विस्तृत व्याख्या प्रदान करेगा, जिसमें इसकी आवश्यकता, कार्यप्रणाली, कॉन्फ़िगरेशन और उपयोग के मामले शामिल हैं।
इनग्रेस की आवश्यकता क्यों है?
कुबेरनेट्स में, पॉड गतिशील रूप से बनाए और नष्ट किए जाते हैं। प्रत्येक पॉड को एक अद्वितीय आईपी पता सौंपा जाता है, जो लगातार नहीं रहता। सीधे पॉड आईपी पतों पर निर्भर रहना अव्यवहारिक और अविश्वसनीय है। सर्विस इस समस्या को हल करने में मदद करते हैं, लेकिन वे आंतरिक क्लस्टर आईपी प्रदान करते हैं जो बाहरी दुनिया के लिए सुलभ नहीं होते हैं।
यहां इनग्रेस की आवश्यकता होती है:
- **स्थिर बाहरी पहुंच:** इनग्रेस आपके एप्लिकेशन के लिए एक स्थिर आईपी पता और डोमेन नाम प्रदान करता है, भले ही अंतर्निहित पॉड बदलते रहें।
- **लोड बैलेंसिंग:** इनग्रेस कई पॉड में ट्रैफ़िक वितरित करके लोड बैलेंसिंग करता है, जो उच्च उपलब्धता और स्केलेबिलिटी सुनिश्चित करता है।
- **एसएसएल/टीएलएस समाप्ति:** इनग्रेस एसएसएल / टीएलएस प्रमाणपत्रों को प्रबंधित कर सकता है और ट्रैफ़िक को एन्क्रिप्ट कर सकता है, जिससे आपके एप्लिकेशन की सुरक्षा बढ़ जाती है।
- **नाम-आधारित वर्चुअल होस्टिंग:** इनग्रेस एक ही आईपी पते पर कई डोमेन नामों या सबडोमेन को होस्ट करने की अनुमति देता है।
- **पथ-आधारित रूटिंग:** इनग्रेस अनुरोधों को उनके पथ के आधार पर विभिन्न बैकएंड सेवाओं पर रूट कर सकता है।
इनग्रेस कैसे काम करता है?
इनग्रेस एक HTTP और HTTPS रूटिंग के लिए एक कंट्रोलर और इनग्रेस रिसोर्स के संयोजन के माध्यम से काम करता है।
- **इनग्रेस कंट्रोलर:** यह एक कुबेरनेट्स घटक है जो इनग्रेस रिसोर्स में परिभाषित नियमों को लागू करता है। यह एक प्रॉक्सी सर्वर के रूप में कार्य करता है जो बाहरी अनुरोधों को सुनता है और उन्हें उचित बैकएंड सेवाओं पर अग्रेषित करता है। कई इनग्रेस कंट्रोलर उपलब्ध हैं, जिनमें nginx, HAProxy, Traefik, और AWS Load Balancer Controller शामिल हैं।
- **इनग्रेस रिसोर्स:** यह एक कुबेरनेट्स ऑब्जेक्ट है जो इनग्रेस कंट्रोलर को बताता है कि ट्रैफ़िक को कैसे रूट करना है। यह नियमों का एक सेट परिभाषित करता है जो होस्टनाम, पथ और बैकएंड सेवाओं के बीच मैपिंग निर्दिष्ट करते हैं।
जब कोई बाहरी उपयोगकर्ता आपके एप्लिकेशन तक पहुंचने का प्रयास करता है, तो प्रक्रिया इस प्रकार है:
1. उपयोगकर्ता का अनुरोध एक डीएनएस सर्वर के माध्यम से इनग्रेस कंट्रोलर के आईपी पते पर भेजा जाता है। 2. इनग्रेस कंट्रोलर इनग्रेस रिसोर्स में परिभाषित नियमों का मूल्यांकन करता है। 3. नियमों के आधार पर, इनग्रेस कंट्रोलर अनुरोध को उचित बैकएंड सेवा पर अग्रेषित करता है। 4. बैकएंड सेवा अनुरोध को संसाधित करती है और इनग्रेस कंट्रोलर के माध्यम से प्रतिक्रिया भेजती है। 5. इनग्रेस कंट्रोलर प्रतिक्रिया को उपयोगकर्ता को वापस भेजता है।
इनग्रेस रिसोर्स कॉन्फ़िगर करना
एक इनग्रेस रिसोर्स को YAML फ़ाइल का उपयोग करके परिभाषित किया जाता है। यहां एक बुनियादी उदाहरण दिया गया है:
```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata:
name: my-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: my-service port: number: 80
```
इस कॉन्फ़िगरेशन में:
- `apiVersion` और `kind` इनग्रेस रिसोर्स के संस्करण और प्रकार को निर्दिष्ट करते हैं।
- `metadata` में इनग्रेस का नाम और एनोटेशन शामिल हैं। एनोटेशन का उपयोग इनग्रेस कंट्रोलर को विशिष्ट कॉन्फ़िगरेशन विकल्प प्रदान करने के लिए किया जाता है।
- `spec` इनग्रेस के व्यवहार को परिभाषित करता है।
- `rules` नियमों की एक सूची है। प्रत्येक नियम में एक `host` और एक `http` ब्लॉक होता है।
- `host` उस डोमेन नाम को निर्दिष्ट करता है जिसके लिए नियम लागू होता है।
- `http` ब्लॉक में `paths` की एक सूची होती है। प्रत्येक पथ में एक `path`, `pathType` और `backend` ब्लॉक होता है।
- `path` उस URL पथ को निर्दिष्ट करता है जिसके लिए नियम लागू होता है। `pathType` यह निर्धारित करता है कि पथ का मिलान कैसे किया जाता है (`Prefix`, `Exact`, या `ImplementationSpecific`)।
- `backend` उस सेवा को निर्दिष्ट करता है जिस पर अनुरोध अग्रेषित किया जाना चाहिए। `service.name` सेवा का नाम है और `service.port.number` सेवा का पोर्ट नंबर है।
इस उदाहरण में, `example.com` डोमेन नाम के लिए सभी अनुरोधों को `my-service` नामक सेवा पर पोर्ट 80 पर अग्रेषित किया जाएगा। `nginx.ingress.kubernetes.io/rewrite-target` एनोटेशन अनुरोध के URL पथ को रूट करने से पहले `/` में फिर से लिखने के लिए Nginx इनग्रेस कंट्रोलर को निर्देश देता है।
इनग्रेस कंट्रोलर स्थापित करना
इनग्रेस का उपयोग करने से पहले, आपको एक इनग्रेस कंट्रोलर स्थापित करना होगा। यहां Nginx इनग्रेस कंट्रोलर स्थापित करने का एक उदाहरण दिया गया है:
1. Nginx इनग्रेस कंट्रोलर के लिए आवश्यक YAML फ़ाइलें डाउनलोड करें:
```bash kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml ```
2. यह सुनिश्चित करें कि इनग्रेस कंट्रोलर सफलतापूर्वक तैनात है:
```bash kubectl get pods -n ingress-nginx ```
इनग्रेस का उपयोग करने के मामले
इनग्रेस का उपयोग विभिन्न परिदृश्यों में किया जा सकता है, जिनमें शामिल हैं:
- **वेब एप्लिकेशन को उजागर करना:** इनग्रेस का उपयोग वेब एप्लिकेशन को बाहरी दुनिया के लिए उजागर करने के लिए किया जा सकता है।
- **एपीआई को उजागर करना:** इनग्रेस का उपयोग एपीआई को बाहरी दुनिया के लिए उजागर करने के लिए किया जा सकता है।
- **माइक्रोसेवाओं को रूट करना:** इनग्रेस का उपयोग विभिन्न माइक्रोसेवाओं पर ट्रैफ़िक रूट करने के लिए किया जा सकता है।
- **ए/बी परीक्षण:** इनग्रेस का उपयोग ए/बी परीक्षण करने के लिए किया जा सकता है, जहां ट्रैफ़िक को विभिन्न संस्करणों में विभाजित किया जाता है।
- **ब्लू/ग्रीन परिनियोजन:** इनग्रेस का उपयोग ब्लू/ग्रीन परिनियोजन करने के लिए किया जा सकता है, जहां ट्रैफ़िक को नए और पुराने संस्करणों के बीच स्विच किया जाता है।
इनग्रेस के साथ सुरक्षा
इनग्रेस को सुरक्षित करने के लिए कई तरीके हैं:
- **एसएसएल/टीएलएस:** इनग्रेस का उपयोग SSL/TLS प्रमाणपत्रों को प्रबंधित करने और ट्रैफ़िक को एन्क्रिप्ट करने के लिए किया जा सकता है।
- **प्रामाणिकरण:** इनग्रेस का उपयोग उपयोगकर्ताओं को प्रमाणित करने के लिए किया जा सकता है।
- **अधिकृत करना:** इनग्रेस का उपयोग उपयोगकर्ताओं को विशिष्ट संसाधनों तक पहुंचने के लिए अधिकृत करने के लिए किया जा सकता है।
- **वेब एप्लिकेशन फ़ायरवॉल (WAF):** इनग्रेस का उपयोग वेब एप्लिकेशन फ़ायरवॉल (WAF) के साथ एकीकृत करने के लिए किया जा सकता है ताकि सामान्य वेब हमलों से सुरक्षा प्रदान की जा सके।
इनग्रेस और अन्य कुबेरनेट्स संसाधनों के बीच संबंध
इनग्रेस अन्य कुबेरनेट्स संसाधनों के साथ मिलकर काम करता है। यहां कुछ महत्वपूर्ण संबंध दिए गए हैं:
- **सर्विस:** इनग्रेस अनुरोधों को बैकएंड सेवाओं पर रूट करता है।
- **पॉड:** सेवाएं पॉड पर ट्रैफ़िक रूट करती हैं।
- **डिप्लॉयमेंट:** डिप्लॉयमेंट पॉड के वांछित राज्य को परिभाषित करते हैं।
- **नेमस्पेस:** इनग्रेस संसाधनों को नेमस्पेस में तैनात किया जाता है।
- **सिक्रेट:** SSL/TLS प्रमाणपत्रों को गुप्त के रूप में संग्रहीत किया जा सकता है और इनग्रेस द्वारा उपयोग किया जा सकता है।
इनग्रेस के लिए उन्नत कॉन्फ़िगरेशन
- **ट्रैफ़िक विभाजन (Traffic Splitting):** एक ही सेवा के विभिन्न संस्करणों के बीच ट्रैफ़िक को विभाजित करने के लिए इनग्रेस का उपयोग किया जा सकता है, जो कैनरी परिनियोजन और ए/बी परीक्षण के लिए उपयोगी है।
- **रीराइट नियम (Rewrite Rules):** अनुरोध URL को बैकएंड सेवा में भेजने से पहले संशोधित करने के लिए ये नियम उपयोग किए जाते हैं।
- **कस्टम त्रुटि पृष्ठ (Custom Error Pages):** विशिष्ट त्रुटि कोड के लिए कस्टम HTML पृष्ठ प्रदर्शित करने के लिए इनग्रेस को कॉन्फ़िगर किया जा सकता है।
- **कनेक्शन लिमिटिंग (Connection Limiting):** किसी विशिष्ट स्रोत से कनेक्शन की संख्या को सीमित करने के लिए।
- **हेडर मैनिपुलेशन (Header Manipulation):** अनुरोध या प्रतिक्रिया हेडर को संशोधित करने के लिए।
समस्या निवारण
इनग्रेस के साथ समस्याओं का निदान करते समय, निम्नलिखित जांचें:
- इनग्रेस कंट्रोलर सफलतापूर्वक चल रहा है।
- इनग्रेस रिसोर्स सही ढंग से कॉन्फ़िगर किया गया है।
- बैकएंड सेवाएं उपलब्ध हैं और ट्रैफ़िक स्वीकार कर रही हैं।
- डीएनएस सही ढंग से इनग्रेस कंट्रोलर के आईपी पते पर रिज़ॉल्व हो रहा है।
- फ़ायरवॉल नियम इनग्रेस कंट्रोलर तक ट्रैफ़िक को ब्लॉक नहीं कर रहे हैं।
- लॉग में त्रुटियों की जांच करें।
निष्कर्ष
कुबेरनेट्स इनग्रेस आपके एप्लिकेशन को बाहरी दुनिया के लिए उजागर करने के लिए एक शक्तिशाली और लचीला तरीका है। यह लोड बैलेंसिंग, SSL/TLS समाप्ति और नाम-आधारित वर्चुअल होस्टिंग जैसी कई विशेषताएं प्रदान करता है। इस लेख में प्रदान की गई जानकारी आपको कुबेरनेट्स इनग्रेस को समझने और अपने अनुप्रयोगों में इसका उपयोग करने में मदद करेगी।
आगे सीखने के लिए संसाधन
- कुबेरनेट्स इनग्रेस दस्तावेज़: [[1]]
- Nginx इनग्रेस कंट्रोलर: [[2]]
- HAProxy इनग्रेस कंट्रोलर: [[3]]
- Traefik इनग्रेस कंट्रोलर: [[4]]
कुबेरनेट्स पॉड सर्विस डीएनएस एसएसएल टीएलएस नेटवर्क कंट्रोलर nginx HAProxy Traefik AWS Load Balancer Controller कैनरी परिनियोजन ए/बी परीक्षण माइक्रोसेवा लोड बैलेंसिंग वेब एप्लिकेशन फ़ायरवॉल सुरक्षा डिप्लॉयमेंट नेमस्पेस सिक्रेट कंटेनर डॉकर कुबेरनेट्स नेटवर्किंग कुबेरनेट्स आर्किटेक्चर तकनीकी विश्लेषण वॉल्यूम विश्लेषण वित्तीय विश्लेषण जोखिम प्रबंधन बाइनरी विकल्प रणनीति कॉल विकल्प पुट विकल्प मनी मैनेजमेंट
अभी ट्रेडिंग शुरू करें
IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)
हमारे समुदाय में शामिल हों
हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री