कुबेरनेट्स में लिनक्स sysctls का उपयोग कैसे करें

Kuberanetsa Mem Linaksa Sysctls Ka Upayoga Kaise Karem



यह पोस्ट इस बात पर चर्चा करेगी कि कुबेरनेट्स में लिनक्स sysctl क्या है और कुबेरनेट्स के एक समूह में इसका उपयोग कैसे किया जा सकता है। Sysctl Linux ऑपरेटिंग सिस्टम में एक इंटरफ़ेस है जो व्यवस्थापक को रनटाइम पर कर्नेल के पैरामीटर को संशोधित करने में सक्षम बनाता है। यहां, हम कुबेरनेट्स प्लेटफॉर्म में लिनक्स sysctls का उपयोग करने का तरीका प्रदर्शित करेंगे। कुबेरनेट्स में sysctls का उपयोग करने के लिए kubectl कमांड को लागू करते समय आप किस प्रकार के आउटपुट की उम्मीद कर सकते हैं, यह समझने में आपकी मदद करने के लिए हम एक सरल उदाहरण प्रदर्शित करेंगे।

सिस्टल्स क्या हैं?

Sysctls Linux में एक इंटरफ़ेस है जिसका उपयोग कंटेनर में नामस्थान के लिए रनटाइम पर कर्नेल पैरामीटर समायोजित करने के लिए किया जाता है। ये पैरामीटर / proc / sys / वर्चुअल प्रोसेस फ़ाइल में पाए जा सकते हैं और वे विभिन्न सबसिस्टम जैसे वर्चुअल मेमोरी, नेटवर्किंग, कर्नेल, आदि को कवर करते हैं। केवल नेमस्पेस्ड sysctls को पॉड्स पर स्वतंत्र रूप से सेट किया जा सकता है और Kubernetes sysctl सेटिंग्स को उजागर करता है। नोड स्तर sysctls जो नामांकित नहीं हैं, उन्हें नोड ट्यूनिंग ऑपरेटर की तरह sysctls सेटिंग की अन्य विधि के साथ सेट करने की आवश्यकता है। इसके अलावा, केवल सुरक्षित sysctls को डिफ़ॉल्ट रूप से श्वेतसूचीबद्ध किया जाता है जबकि असुरक्षित sysctls को नोड पर मैन्युअल रूप से सक्षम करने की आवश्यकता होती है ताकि वे उपयोगकर्ता के लिए उपलब्ध हो सकें। अब, कुबेरनेट्स में Linux sysctls का उपयोग करने का तरीका समझते हैं।







आवश्यक शर्तें

इससे पहले कि आप सीखना शुरू करें कि कुबेरनेट्स में लिनक्स sysctls का उपयोग कैसे करें, सुनिश्चित करें कि आपके सिस्टम में निम्नलिखित उपकरण स्थापित हैं:



    • कुबेरनेट्स संस्करण 1.23 या कोई अन्य नवीनतम संस्करण
    • उबंटू 20.04 या कोई अन्य नवीनतम संस्करण
    • फली समर्थन के लिए Sysctls
    • कुबेक्टल कमांड लाइन टूल
    • मिनिक्यूब क्लस्टर

यह मानते हुए कि आपका सिस्टम पूर्वापेक्षा आवश्यकताओं को पूरा कर रहा है, हम कार्यान्वयन अनुभाग में जा रहे हैं।



Kubernetes में Linux sysctls का उपयोग कैसे करें?

लिनक्स ऑपरेटिंग सिस्टम एक ऐसा प्लेटफॉर्म है जो आपको नेटवर्क स्टैक में sysctls नॉब्स के माध्यम से गुठली को ट्यून करने की अनुमति देता है। कुछ sysctls को अपने स्वयं के कॉन्फ़िगरेशन के साथ पॉड के लिए नामित किया गया है जबकि अन्य पूरे सिस्टम के लिए मान्य हैं। कुबेरनेट्स ने sysctls इंटरफ़ेस को दो श्रेणियों में बांटा है:





    • नामांकित बनाम नोड-स्तरीय sysctls
    • सुरक्षित बनाम असुरक्षित sysctls

नामांकित बनाम नोड-स्तरीय sysctls:

लिनक्स कर्नेल में, अधिकांश sysctls नामस्थान हैं जो आपको एक नोड पर विभिन्न पॉड्स के बीच स्वतंत्र रूप से सेट करने में सक्षम बनाता है। नेमस्पेस्ड sysctls कुबेरनेट्स पॉड में आसानी से उपलब्ध हैं। कुछ नामांकित sysctls इस प्रकार हैं:



    • fs.mqueue.*
    • कर्नेल .संदेश*
    • कर्नेल.शम*
    • कर्नेल.सेम

नोड स्तर sysctls नामस्थान नहीं हैं और क्लस्टर व्यवस्थापक को उन्हें मैन्युअल रूप से सेट करने की आवश्यकता है। क्लस्टर व्यवस्थापक या तो एक विशेषाधिकार प्राप्त कंटेनर के साथ एक दानव सेट का उपयोग करता है या /etc/sysctls.conf नोड के लिनक्स वितरण को संशोधित कर सकता है। नोड ट्यूनिंग ऑपरेटर का उपयोग नोड स्तर sysctls को सेट करने के लिए भी किया जा सकता है।

सुरक्षित बनाम असुरक्षित sysctls:

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

    • net.ipv4.ping_group_range
    • net.ipv4.ip_local_port_range
    • कर्नेल.शम_रमिड_फोर्स्ड
    • net.ipv4.tcp_syncookies

यहां ध्यान देने वाली बात यह है कि केवल नाम स्थान दिया जाना ही sysctl को सुरक्षित मानने के लिए पर्याप्त नहीं है।

अब जब हम दोनों sysctls की श्रेणियों को समझ गए हैं, तो आइए जानें कि कुबेरनेट्स में इन sysctls का उपयोग कैसे करें। यहां, हम आपको बताएंगे कि सुरक्षित और असुरक्षित दोनों तरह के सिस्टम का उपयोग कैसे करें और कुबेरनेट्स में असुरक्षित सिस्टम को मैन्युअल रूप से कैसे सक्षम करें।

चरण # 1: मिनिक्यूब क्लस्टर शुरू करें

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

> मिनिक्यूब शुरू करें


यह मिनीक्यूब क्लस्टर शुरू करेगा जहां आप कुबेकेल कमांड चला सकते हैं और कुबेरनेट्स प्लेटफॉर्म में लिनक्स sysctls का उपयोग कर सकते हैं। जब आप इस कमांड को निष्पादित करते हैं, तो आपको नीचे दिए गए समान आउटपुट मिलेगा:

चरण # 2: sysctls के Parameters की जाँच करें

sysctls इंटरफ़ेस का उपयोग कर्नेल पैरामीटर को संशोधित करने के लिए किया जाता है जो /proc/sys/ वर्चुअल प्रोसेस फ़ाइल में पाए जाते हैं। सभी मानकों को सूचीबद्ध करने के लिए, नीचे दी गई कमांड का उपयोग किया जा सकता है:

> सुडो sysctl -एक


यह कमांड /proc/sys/ वर्चुअल प्रोसेस फ़ाइल से सभी कर्नेल पैरामीटर सूचीबद्ध करेगा। नीचे स्नैपशॉट में दिया गया नमूना आउटपुट देखें:

चरण # 3: असुरक्षित sysctls को सक्षम करें

असुरक्षित sysctls को मैन्युअल रूप से सक्षम करने की आवश्यकता है क्योंकि वे डिफ़ॉल्ट रूप से अक्षम हैं। क्लस्टर व्यवस्थापक प्रति-नोड आधार पर असुरक्षित sysctls को मैन्युअल रूप से सक्षम करता है। जिन पॉड ने असुरक्षित sysctls को निष्क्रिय कर दिया है, उन्हें लॉन्च नहीं किया जा सकता है, लेकिन केवल शेड्यूल किया गया है। कुछ विशिष्ट स्थितियाँ हैं (जैसे रन टाइम एप्लिकेशन ट्यूनिंग, उच्च प्रदर्शन, आदि) जब क्लस्टर व्यवस्थापक असुरक्षित sysctls को अनुमति दे सकता है। नोड-बाय-नोड आधार पर असुरक्षित sysctls को सक्षम करने के लिए, आप नीचे दिए गए kubectl कमांड का उपयोग कर सकते हैं:

> kubectl –allowed-unsafe-sysctls \


यह kubectl कमांड का उपयोग करके असुरक्षित sysctls को सक्षम करने का एक बहुत ही बुनियादी और सरल तरीका है।


इसके अलावा, असुरक्षित sysctls को मिनीक्यूब अतिरिक्त-कॉन्फ़िगरेशन फ़्लैग का उपयोग करके सक्षम किया जा सकता है। यह नीचे दिए गए आदेश का उपयोग करके किया जा सकता है:

> मिनिक्यूब स्टार्ट -अतिरिक्त-कॉन्फ़िगर =”kubectl.allowed-unsafe-sysctls=kernel.msg * , net.core.somaxconn'...


यह आदेश आपको मिनीक्यूब क्लस्टर के माध्यम से असुरक्षित sysctls को सक्षम करने की अनुमति देता है। हालाँकि, यह केवल नामांकित sysctls को सक्षम कर सकता है। नीचे स्नैपशॉट में दिया गया नमूना आउटपुट देखें:

निष्कर्ष

इस आलेख ने हमें Linux sysctls इंटरफ़ेस का अवलोकन प्रदान किया। हमने चर्चा की कि Linux sysctl क्या है और कुबेरनेट्स वातावरण में इसका उपयोग कैसे किया जा सकता है। sysctls के दो समूह हैं: सुरक्षित और असुरक्षित। Sysctls का सुरक्षित समूह डिफ़ॉल्ट रूप से सक्षम है, जबकि असुरक्षित sysctls समूह डिफ़ॉल्ट रूप से अक्षम है। एक सरल और आसान उदाहरण की मदद से, हमने सीखा कि कैसे kubectl कमांड और minikube –extra-config फ़्लैग का उपयोग करके असुरक्षित sysctls को सक्षम किया जाए।