प्रवेश नियंत्रक क्या है?
इनग्रेस कंट्रोलर एक घटक है जो उपयोगकर्ताओं को अपने कुबेरनेट्स क्लस्टर के भीतर सेवाओं की पहुंच को प्रबंधित और नियंत्रित करने की अनुमति देता है। प्रवेश नियंत्रक के दो प्रमुख तत्व हैं:
- प्रवेश संसाधन - यह एक कुबेरनेट्स एपीआई ऑब्जेक्ट है जो निर्दिष्ट होस्टनाम और पथों के आधार पर क्लस्टर में सेवाओं के ट्रैफ़िक को रूट करने के नियमों को परिभाषित करता है।
- प्रवेश नियंत्रक - यह एक सॉफ्टवेयर घटक है जैसे कि HAProxy, ट्रैफिक, या NGINX जो इनग्रेस रिसोर्स में निर्दिष्ट नियमों को लागू करता है। यह प्रवेश वस्तुओं में किए गए परिवर्तनों के आधार पर ट्रैफ़िक को संभालने के लिए लोड बैलेंसर को कॉन्फ़िगर करता है।
कुबेरनेट्स पर्यावरण में इनग्रेस कंट्रोलर के रूप में HAProxy का उपयोग कैसे करें
यह समझने के बाद कि इनग्रेस कंट्रोलर क्या है और आपको इसकी आवश्यकता क्यों है, अगला कार्य इसका उपयोग करने के चरणों को कवर करना है। हमारे मामले के लिए, हमने दिए गए चरणों का पालन करते हुए HAProxy को अपने प्रवेश नियंत्रक के रूप में स्थापित किया है।
एन/बी: सुनिश्चित करें कि आपका कुबेरनेट्स क्लस्टर चालू और चालू है। फिर, निम्नानुसार आगे बढ़ें।
चरण 1: अपना कुबेरनेट्स क्लस्टर प्रारंभ करें
कुबेरनेट्स क्लस्टर को स्थापित करने और शुरू करने के विभिन्न तरीके हैं। इस गाइड के लिए, हम मिनिक्यूब का उपयोग करते हैं। यह एक उपकरण है जो वर्चुअल मशीन या डॉकर के अंदर कुबेरनेट्स को तैनात करने का एक सरल तरीका प्रदान करता है, खासकर यदि आपके पास अपनी मशीन पर स्थानीय रूप से कुबेरनेट्स हैं।
को देखें मिनिक्यूब दस्तावेज़ीकरण आपके प्लेटफ़ॉर्म के लिए उपयोग करने के लिए इंस्टॉलेशन कमांड पर। इस मामले के लिए, हम एक स्थिर 'x64' लिनक्स आर्किटेक्चर चलाते हैं और निम्नलिखित कमांड चलाते हैं:
$ कर्ल -यह https: // स्टोरेज.googleapis.com / मिनीक्यूब / विज्ञप्ति / नवीनतम / मिनीक्यूब-लिनक्स-amd64
$ सूडो स्थापित करना मिनीक्यूब-लिनक्स-amd64 / यूएसआर / स्थानीय / बिन / मिनीक्यूब
पहला कमांड नवीनतम स्थिर मिनिक्यूब बाइनरी को पकड़ता है, जबकि दूसरा कमांड बाइनरी को स्थापित करता है और निर्दिष्ट पथ में ले जाता है।
एक बार जब आप मिनिक्यूब स्थापित कर लें, तो क्लस्टर को ऊपर लाने के लिए इसे प्रारंभ करें।
$ मिनीक्यूब प्रारंभ
क्लस्टर तक पहुँचने के लिए आपके पास kubectl स्थापित होना चाहिए। हालाँकि, आप क्यूबेक्टल संस्करण का उपयोग कर सकते हैं जो मिनिक्यूब के साथ उपलब्ध है। उदाहरण के लिए, चल रहे पॉड्स के विवरण की जांच करने के लिए, आप 'कुबेक्टल' कमांड को निम्नानुसार निष्पादित करते हैं:
$ मिनीक्यूब क्यूबेक्टल -- फली प्राप्त करें -एइस तरह, आपको kubectl स्थापित करने की आवश्यकता नहीं है। (-) संकेत देता है कि आदेश क्यूबेक्टल के लिए हैं, मिनिक्यूब के लिए नहीं।
चरण 2: एक नेमस्पेस बनाएं
दूसरे चरण में इनग्रेस कंट्रोलर के लिए एक समर्पित नेमस्पेस बनाना शामिल है। हमने नेमस्पेस को 'हैप्रोक्सी-कंट्रोलर' नाम दिया है।
चरण 3: HAProxy इनग्रेस कंट्रोलर बनाएं और तैनात करें
आप इनग्रेस कंट्रोलर कैसे बनाते हैं यह इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं। उदाहरण के लिए, आप अनुरोधित होस्टनाम के आधार पर HTTP ट्रैफ़िक को रूट करने के लिए HAProxy इनग्रेस कंट्रोलर बना सकते हैं। ऐसे मामले के लिए, अपने DNS सर्वर तक पहुंच शुरू करें और लक्ष्य होस्टनाम को अपने क्लस्टर में मैप करने के लिए एक 'ए' रिकॉर्ड बनाएं।
एक बार जब आपके पास अपना सही 'ए' रिकॉर्ड हो जाए, तो अपनी इनग्रेस कंट्रोलर YAML फ़ाइल बनाएं जैसा कि निम्नलिखित छवि में दिखाया गया है। पहले खंड में, हमने एक परिनियोजन संसाधन बनाया जो हमारे उदाहरण के रूप में 'jmalloc/echo-server' डॉकर कंटेनर छवि का उपयोग करता है।
YAML फ़ाइल के दूसरे खंड में, हमने सेवा संसाधन बनाया है जो चरण 4 में बनाए गए इनग्रेस कंट्रोलर में अनुरोधित होस्टनाम के आधार पर मैप किया जाता है।
फ़ाइल को सहेजें और kubectl का उपयोग करके इसे अपने क्लस्टर में तैनात करें। हम अपने मामले के लिए निम्नलिखित कमांड चलाकर मिनिक्यूब क्यूबेक्टल का संदर्भ देते हैं। हमारा HAProxy प्रवेश नियंत्रक 'linuxhint-jmaildeployment.yaml' है।
$ मिनीक्यूब क्यूबेक्टल -- आवेदन करना -एफ < फ़ाइल का नाम >
एक बार जब आपको यह दिखाने वाला आउटपुट मिल जाए कि सेवा बनाई गई है, तो आप आगे सत्यापित कर सकते हैं कि इसे निम्नलिखित कमांड का उपयोग करके तैनात किया गया है:
$ मिनीक्यूब क्यूबेक्टल -- फली प्राप्त करें --नेमस्पेस haproxy-नियंत्रक
सुनिश्चित करें कि आप चरण 1 में बनाए गए सही नेमस्पेस का उपयोग करते हैं। आपको एक आउटपुट मिलेगा जो पुष्टि करता है कि सेवा उपलब्ध है जिसका अर्थ है कि तैनाती सफल रही।
चरण 4: एक इनग्रेस रिसोर्स बनाएं और तैनात करें
एक और YAML फ़ाइल बनाएं जो प्रवेश संसाधन के रूप में कार्य करती है जिसमें HAProxy को आपके ट्रैफ़िक को कैसे रूट करना चाहिए इसके नियम शामिल हैं। सुनिश्चित करें कि आप सही डोमेन नाम (होस्ट) का उपयोग करते हैं जिसे आप लक्षित कर रहे हैं और आने वाले ट्रैफ़िक को स्वीकार करने के लिए नामकरण और वांछित पोर्ट को समायोजित करें।
HAProxy इनग्रेस रिसोर्स फाइल को सेव करें और इसे तैनात करें जैसा कि हमने कंट्रोलर के साथ किया था।
$ मिनीक्यूब क्यूबेक्टल -- आवेदन करना -एफ < फ़ाइल का नाम >हम अपने प्रवेश संसाधन को 'linuxhint-ingresscontroller.yaml' नाम देते हैं।
इतना ही! निम्नलिखित कमांड के साथ, आप यह सत्यापित कर सकते हैं कि आपका HAProxy इनग्रेस कंट्रोलर NodePort को सौंपे गए पोर्ट की जाँच करके काम कर रहा है।
$ मिनीक्यूब क्यूबेक्टल -- सेवा प्राप्त करें haproxy-kubernetes-ingress --नेमस्पेस haproxy-नियंत्रकइस मामले के लिए, इसे पोर्ट 32448 के साथ असाइन किया गया है। आप पोर्ट का उपयोग करके बनाई गई सेवा तक पहुंच सकते हैं और इसकी स्थिति की जांच कर सकते हैं।
इसके साथ, आप कुबेरनेट्स वातावरण में एक प्रवेश नियंत्रक के रूप में HAProxy का उपयोग करने में कामयाब रहे।
निष्कर्ष
एक इनग्रेस कंट्रोलर आपको यह परिभाषित करने देता है कि आपके इनग्रेस रिसोर्स फ़ाइल में परिभाषित नियमों के आधार पर आपके क्लस्टर में ट्रैफ़िक को कैसे प्रबंधित किया जाए। HAProxy एक विश्वसनीय इनग्रेस कंट्रोलर है जिसे आप Kubernetes क्लस्टर के भीतर उपयोग कर सकते हैं, और इस पोस्ट में बताया गया है कि इसका उपयोग करने के लिए आपको किन चरणों का पालन करना चाहिए। इसे आज़माएं और अपने प्रवेश नियंत्रक के रूप में HAProxy का उपयोग करने का आनंद लें।