Kubernetes में Deny Service बाहरी IP को कैसे कॉन्फ़िगर करें

Kubernetes Mem Deny Service Bahari Ip Ko Kaise Konfigara Karem



कुबेरनेट्स क्लस्टर की स्थापना करते समय आप एक समस्या में भाग सकते हैं जब आप केवल यह जानते हैं कि इंटरनेट पर अपनी कुबेरनेट्स सेवा को सुलभ बनाने के लिए नोडपोर्ट का उपयोग कैसे करें। NodePort सेवा प्रकार को नियोजित करते समय, एक उच्च पोर्ट नंबर असाइन किया जाएगा और आपको अपने फ़ायरवॉल नियम में उन पोर्ट्स के लिए कनेक्शन की अनुमति देनी होगी। यह आपके बुनियादी ढाँचे के लिए हानिकारक है, खासकर अगर सर्वर खुले इंटरनेट के माध्यम से पहुँचा जा सकता है। आप क्लस्टर के बाहर IP पतों का एक ब्लॉक एक क्लस्टर व्यवस्थापक के रूप में असाइन कर सकते हैं जो वहां सेवाओं के लिए ट्रैफ़िक संचारित कर सकता है। इस लेख में हम इसी के बारे में बात करने जा रहे हैं: कुबेरनेट्स में सेवा बाहरी आईपी को अस्वीकार करने के तरीके के बारे में सभी महत्वपूर्ण जानकारी खोजने के लिए।

बाहरी आईपी सेवा क्या है?

सेवा समापन बिंदुओं में से एक ट्रैफ़िक प्राप्त करेगा जो बाहरी IP (गंतव्य IP के रूप में) और सेवा पोर्ट का उपयोग करके क्लस्टर में प्रवेश करता है। Kubernetes बाहरी IP के प्रबंधन के लिए ज़िम्मेदार नहीं है।







यह सुनिश्चित करना कि कुबेरनेट्स क्लस्टर तक पहुँचने के लिए किस आईपी का उपयोग किया जाता है, इस स्थिति में महत्वपूर्ण है। बाहरी आईपी सेवा प्रकार का उपयोग करके, हम सेवा को उस आईपी पते से जोड़ सकते हैं जिसका उपयोग क्लस्टर तक पहुँचने के लिए किया जाता है।



तथ्य यह है कि कुबेरनेट्स नेटवर्क ओवरले नेटवर्क के साथ इंटरैक्ट करता है, इस स्थिति को समझने के लिए महत्वपूर्ण है। इसका तात्पर्य यह है कि एक बार जब आप किसी भी नोड (मास्टर या वर्कर नोड) तक पहुँच जाते हैं, तो आप क्लस्टर में व्यावहारिक रूप से प्रत्येक नोड तक पहुँच सकते हैं।



नेटवर्क इस तरह दिखाया गया है:






आरेख में दोनों नोड 1 और 2 एक ही IP पता साझा करते हैं। वास्तविक पॉड नोड 1 पर रहता है, लेकिन IP पता 1.2.3.6 नोड 1 पर Nginx सेवा के लिए बाध्य है। नोड 1 का IP पता, 1.2.3.4, httpd सेवा के लिए बाध्य है, और नोड 2 का वास्तविक पॉड वहां स्थित है।

यह ओवरले नेटवर्क की बुनियाद से संभव हुआ है। जब हम आईपी एड्रेस 1.2.3.4 को कर्ल करते हैं, तो httpd सेवा को प्रतिक्रिया देनी चाहिए; जब हम 1.2.3.5 को कर्ल करते हैं, तो Nginx सेवा को प्रतिक्रिया देनी चाहिए।



बाहरी आईपी के फायदे और नुकसान

यहां बाहरी आईपी के फायदे और नुकसान हैं:

बाहरी IP का उपयोग करना लाभप्रद है क्योंकि:

    • आपका आईपी पूरी तरह से आपके नियंत्रण में है। क्लाउड प्रदाता के ASN का उपयोग करने के बजाय, आप अपने स्वयं के ASN से संबंधित IP का उपयोग कर सकते हैं।

बाहरी आईपी की कमियों में निम्नलिखित शामिल हैं:

    • अभी हम जिस सरल सेटअप से गुजरेंगे वह बहुत आसानी से उपलब्ध नहीं है। इसका मतलब यह है कि यदि नोड विफल हो जाता है, तो सेवा अब और सुलभ नहीं होगी और आपको समस्या को मैन्युअल रूप से ठीक करना होगा।
    • IPs को संभालने के लिए काफी मानव श्रम की आवश्यकता होती है। चूंकि आईपी आपके लिए गतिशील रूप से आवंटित नहीं हैं, इसलिए आपको इसे मैन्युअल रूप से करना होगा।

डिफ़ॉल्ट इनकार/अनुमति व्यवहार क्या है?

' डिफ़ॉल्ट अनुमति दर्शाता है कि डिफ़ॉल्ट रूप से सभी ट्रैफ़िक की अनुमति है। जब तक विशेष रूप से अनुमति नहीं दी जाती है, 'शब्द का उपयोग करते समय डिफ़ॉल्ट रूप से सभी ट्रैफ़िक को अस्वीकार कर दिया जाता है' डिफ़ॉल्ट इनकार ।” सिवाय जब एक नेटवर्क नीति निर्दिष्ट की जाती है।

    • यदि उस पॉड के लिए कोई नेटवर्क नीति प्रभावी नहीं है, तो किसी पॉड से आने-जाने वाले सभी ट्रैफ़िक की अनुमति है।
    • यदि एक या एक से अधिक नेटवर्क नीतियां प्रवेश प्रकार के पॉड के लिए लागू हैं, तो केवल उन नीतियों द्वारा स्पष्ट रूप से अनुमत प्रवेश यातायात की अनुमति है।
    • जब एक या एक से अधिक नेटवर्क नीतियाँ किसी इगोर प्रकार के पॉड पर लागू होती हैं, तो केवल उन नीतियों द्वारा अनुमत इग्रेस ट्रैफ़िक की अनुमति होती है।

अन्य समापन बिंदु प्रकारों (VMs, होस्ट इंटरफ़ेस) के लिए डिफ़ॉल्ट सेटिंग ट्रैफ़िक को ब्लॉक करना है। केवल नेटवर्क नीति द्वारा विशेष रूप से अनुमत ट्रैफ़िक की अनुमति है, भले ही समापन बिंदु पर कोई नेटवर्क नीति लागू न हो।

सर्वोत्तम अभ्यास: निहित डिफ़ॉल्ट अस्वीकार नीति

आपको अपने कुबेरनेट पॉड्स के लिए बनाई गई एक अंतर्निहित डिफ़ॉल्ट अस्वीकार नीति को कॉन्फ़िगर करना होगा। यह सुनिश्चित करता है कि अवांछित यातायात स्वचालित रूप से अवरुद्ध हो गया है। याद रखें कि अंतर्निहित डिफ़ॉल्ट नीतियों को हमेशा अंत में प्रभावी होने से इनकार करता है; यदि कोई अन्य नीतियां यातायात की अनुमति देती हैं, तो इनकार लागू नहीं होता है। अन्य सभी नीतियों पर विचार करने के बाद ही इनकार को लागू किया जाता है।

Kubernetes Pods के लिए डिफ़ॉल्ट अस्वीकृत नीति कैसे बनाएं?

हम वैश्विक नेटवर्क नीति का उपयोग करने की सलाह देते हैं, भले ही निम्न में से कोई भी नियम कुबेरनेट्स पॉड्स के लिए डिफ़ॉल्ट अस्वीकृत नीति बनाने के लिए उपयोग किया जा सकता है। वैश्विक नेटवर्क नीति सभी नामस्थानों और मेजबानों के सभी वर्कलोड (वीएम और कंटेनर) पर लागू होती है। एक वैश्विक नेटवर्क नीति संसाधनों की रक्षा करते हुए सुरक्षा के प्रति सतर्क दृष्टिकोण को प्रोत्साहित करती है।

    • वैश्विक नेटवर्क नीति को अस्वीकार करने के लिए डिफ़ॉल्ट सक्षम करें, गैर-नामस्थान
    • नेटवर्क नीति को अस्वीकार करने के लिए डिफ़ॉल्ट सक्षम करें, नामस्थान
    • कुबेरनेट्स नीति को अस्वीकार करने के लिए डिफ़ॉल्ट सक्षम करें, नामांकित

आईपी ​​​​ब्लॉक क्या है?

इसके साथ, विशिष्ट IP CIDR रेंज को इनग्रेस सोर्स या इग्रेस डेस्टिनेशन के रूप में अनुमति देने के लिए चुना जाता है। यह देखते हुए कि पॉड आईपी क्षणिक और अप्रत्याशित हैं, ये क्लस्टर-बाहरी आईपी होने चाहिए।

क्लस्टर प्रवेश और निकास विधियों का उपयोग करते समय पैकेट के स्रोत या गंतव्य आईपी को अक्सर फिर से लिखा जाना चाहिए। उपयोग किए जाने वाले विशेष नेटवर्क प्लगइन (क्लाउड सेवा प्रदाता, सेवा कार्यान्वयन, आदि) के आधार पर, व्यवहार बदल सकता है।

यह प्रवेश के लिए सही है और इसका मतलब है कि कुछ मामलों में आपको आने वाले पैकेट को फ़िल्टर करना होगा जो वास्तविक स्रोत आईपी पर आधारित हैं। दूसरी ओर, नेटवर्कपॉलिसी जिस 'स्रोत आईपी' पर काम करती है, वह लोडबैंसर या यहां तक ​​कि पॉड के नोड आदि का आईपी हो सकता है।

इससे पता चलता है कि पॉड्स और सर्विस आईपी के बीच के कनेक्शन जो क्लस्टर-बाहरी आईपी पर फिर से लिखे गए हैं, इग्रेस के मामले में आईपीब्लॉक-आधारित प्रतिबंधों के अधीन हो सकते हैं।

डिफ़ॉल्ट नीतियां क्या हैं?

यदि उस नाम स्थान के लिए कोई नियंत्रण नहीं है, तो नाम स्थान में पॉड्स से आने और जाने वाले सभी ट्रैफ़िक को डिफ़ॉल्ट रूप से अनुमति दी जाती है। आप निम्न उदाहरणों का उपयोग करके नामस्थान के डिफ़ॉल्ट व्यवहार को बदल सकते हैं।

डिफ़ॉल्ट रूप से सभी प्रवेश ट्रैफ़िक को अस्वीकार करें

एक नेटवर्क नीति बनाते समय जो सभी पॉड्स को चुनती है लेकिन उन पॉड्स में आने वाले ट्रैफ़िक को शामिल नहीं करती है, आप एक 'डिफ़ॉल्ट' इंग्रेस आइसोलेशन पॉलिसी बना सकते हैं और वह नाम स्थान के लिए है।


यह सुनिश्चित करता है कि सभी पॉड्स, भले ही कोई अन्य नेटवर्क नीति उन्हें चुनती है, प्रवेश के लिए अलग-थलग हैं। यह नियम किसी भी फली से बाहर निकलने के अलगाव पर लागू नहीं होता है।

डिफ़ॉल्ट रूप से सभी निकास ट्रैफ़िक को अस्वीकार करें

जब आप एक ऐसी नेटवर्क नीति बनाते हैं जो सभी पॉड्स को चुनती है लेकिन उन पॉड्स से इग्रेस ट्रैफिक को प्रतिबंधित करती है, तो आप एक 'डिफ़ॉल्ट' इग्रेस आइसोलेशन पॉलिसी बना सकते हैं और वह भी एक नेमस्पेस के लिए।

निष्कर्ष

यह मार्गदर्शिका DenyServiceExternalIPs के उपयोग के बारे में थी। हमने अपने उपयोगकर्ताओं को यह समझने के लिए एक आरेखीय प्रतिनिधित्व भी तैयार किया है कि यह काम कर रहा है। हमने नमूना विन्यास भी प्रदान किया है।