कुबेरनेट्स नोड चयनकर्ता क्या है?
एक नोड चयनकर्ता कुबेरनेट्स में एक शेड्यूलिंग बाधा है जो एक कुंजी के रूप में एक मानचित्र निर्दिष्ट करता है: मूल्य जोड़ी कस्टम पॉड चयनकर्ता और नोड लेबल का उपयोग कुंजी, मूल्य जोड़ी को परिभाषित करने के लिए किया जाता है। नोड पर लेबल किए गए नोड चयनकर्ता को कुंजी: मान जोड़ी से मेल खाना चाहिए ताकि एक विशिष्ट नोड पर एक निश्चित पॉड चलाया जा सके। पॉड को शेड्यूल करने के लिए, नोड्स पर लेबल का उपयोग किया जाता है, और पॉड पर नोडसेलेक्टर्स का उपयोग किया जाता है। OpenShift कंटेनर प्लेटफ़ॉर्म लेबल से मिलान करके नोड चयनकर्ता का उपयोग करके नोड्स पर पॉड्स को शेड्यूल करता है।
इसके अलावा, लेबल और नोडसेलेक्टर का उपयोग यह नियंत्रित करने के लिए किया जाता है कि किसी विशिष्ट नोड पर किस पॉड को शेड्यूल किया जाना है। जब आप लेबल और नोडसेलेक्टर का उपयोग करते हैं, तो पहले नोड को लेबल करें ताकि पॉड शेड्यूल न हो और फिर पॉड में नोडसेलेक्टर जोड़ें। एक निश्चित नोड पर एक निश्चित पॉड रखने के लिए, नोडसेलेक्टर का उपयोग किया जाता है, जबकि क्लस्टर-वाइड नोडसेलेक्टर आपको क्लस्टर में कहीं भी मौजूद एक निश्चित नोड पर एक नया पॉड रखने की अनुमति देता है। प्रोजेक्ट नोड सेलेक्टर का उपयोग प्रोजेक्ट में एक निश्चित नोड पर नए पॉड को रखने के लिए किया जाता है।
आवश्यक शर्तें
Kubernetes nodeSelector का उपयोग करने के लिए, सुनिश्चित करें कि आपके सिस्टम में निम्नलिखित उपकरण स्थापित हैं:
- उबंटू 20.04 या कोई अन्य नवीनतम संस्करण
- न्यूनतम एक कार्यकर्ता नोड के साथ मिनिक्यूब क्लस्टर
- कुबेक्टल कमांड लाइन टूल
अब, हम अगले भाग में जा रहे हैं, जहाँ हम यह प्रदर्शित करेंगे कि आप कुबेरनेट्स क्लस्टर पर नोडसेलेक्टर का उपयोग कैसे कर सकते हैं।
Kubernetes में nodeSelector कॉन्फ़िगरेशन
नोड चयनकर्ता का उपयोग करके एक पॉड को केवल एक विशिष्ट नोड पर चलाने में सक्षम होने के लिए प्रतिबंधित किया जा सकता है। नोड चयनकर्ता एक नोड चयन बाधा है जो पॉड विनिर्देश पॉडस्पेक में निर्दिष्ट है। सरल शब्दों में, नोडसेलेक्टर एक शेड्यूलिंग सुविधा है जो आपको नोड पर पॉड को शेड्यूल करने के लिए पॉड पर नियंत्रण देती है जिसमें नोडसेलेक्टर लेबल के लिए उपयोगकर्ता द्वारा निर्दिष्ट समान लेबल होता है। Kubernetes में nodeSelector का उपयोग या कॉन्फ़िगर करने के लिए, आपको मिनीक्यूब क्लस्टर की आवश्यकता होती है। नीचे दी गई कमांड के साथ मिनिक्यूब क्लस्टर शुरू करें:
> मिनिक्यूब शुरू करें
अब जब मिनिक्यूब क्लस्टर सफलतापूर्वक शुरू हो गया है, तो हम कुबेरनेट्स में नोडसेलेक्टर के कॉन्फ़िगरेशन को लागू करना शुरू कर सकते हैं। इस दस्तावेज़ में हम आपको दो परिनियोजन बनाने के लिए मार्गदर्शन करेंगे, एक बिना किसी नोड चयनकर्ता के है और दूसरा नोड चयनकर्ता के साथ है।
नोड चयनकर्ता के बिना परिनियोजन कॉन्फ़िगर करें
सबसे पहले, हम नीचे दिए गए आदेश का उपयोग करके क्लस्टर में वर्तमान में सक्रिय सभी नोड्स का विवरण निकालेंगे:
> kubectl को नोड मिलते हैंयह आदेश क्लस्टर में मौजूद सभी नोड्स को नाम, स्थिति, भूमिका, आयु और संस्करण पैरामीटर के विवरण के साथ सूचीबद्ध करेगा। नीचे दिया गया नमूना आउटपुट देखें:
अब, हम जाँचेंगे कि क्लस्टर में नोड्स पर कौन से टेंट सक्रिय हैं ताकि हम पॉड्स को तदनुसार नोड पर तैनात करने की योजना बना सकें। नीचे दिए गए आदेश का उपयोग नोड पर लगाए गए दागों का विवरण प्राप्त करने के लिए किया जाना है। नोड पर कोई दाग सक्रिय नहीं होना चाहिए ताकि उस पर पॉड्स को आसानी से तैनात किया जा सके। तो, आइए देखते हैं कि निम्न आदेश निष्पादित करके क्लस्टर में कौन से दोष सक्रिय हैं:
> kubectl मिनिक्यूब नोड्स का वर्णन करता है | पकड़ कलंक
ऊपर दिए गए आउटपुट से, हम देख सकते हैं कि नोड पर कोई दाग नहीं लगाया गया है, बस हमें नोड पर पॉड्स को तैनात करने की आवश्यकता है। अब, अगला कदम इसमें किसी भी नोड चयनकर्ता को निर्दिष्ट किए बिना परिनियोजन बनाना है। उस मामले के लिए, हम एक YAML फ़ाइल का उपयोग करेंगे जहाँ हम nodeSelector कॉन्फ़िगरेशन को संग्रहीत करेंगे। यहां संलग्न आदेश का उपयोग YAML फ़ाइल बनाने के लिए किया जाएगा:
> नैनो deplond.yamlयहाँ, हम नैनो कमांड के साथ deplond.yaml नामक YAML फ़ाइल बनाने का प्रयास कर रहे हैं।
इस आदेश को निष्पादित करने पर, हमारे पास deplond.yaml फ़ाइल होगी जहां हम परिनियोजन कॉन्फ़िगरेशन संग्रहीत करेंगे। नीचे दिया गया परिनियोजन कॉन्फ़िगरेशन देखें:
अब, हम परिनियोजन कॉन्फ़िगरेशन फ़ाइल का उपयोग करके परिनियोजन बनाएंगे। कॉन्फ़िगरेशन बनाने के लिए deplond.yaml फ़ाइल का उपयोग 'बनाएँ' कमांड के साथ किया जाएगा। नीचे दी गई पूरी कमांड देखें:
> kubectl create -एफ deplond.yaml
जैसा कि ऊपर दिखाया गया है, परिनियोजन सफलतापूर्वक बनाया गया है लेकिन नोड चयनकर्ता के बिना। अब, आइए नीचे दिए गए कमांड से क्लस्टर में पहले से उपलब्ध नोड्स की जांच करें:
> कुबेक्टल पॉड्स प्राप्त करेंयह क्लस्टर में उपलब्ध सभी पॉड्स को सूचीबद्ध करेगा। नीचे दिया गया आउटपुट देखें:
अगला, हमें प्रतिकृतियों की संख्या को बदलने की आवश्यकता है जो deplond.yaml फ़ाइल को संपादित करके किया जा सकता है। बस deplond.yaml फ़ाइल खोलें और प्रतिकृतियों के मान को संपादित करें। यहाँ, हम रेप्लिका: 3 को रेप्लिका: 30 में बदल रहे हैं। नीचे दिए गए स्नैपशॉट में संशोधन देखें:
अब, परिनियोजन परिभाषा फ़ाइल से परिनियोजन पर परिवर्तन लागू करने की आवश्यकता है और यह निम्न कमांड का उपयोग करके किया जा सकता है:
> कुबेक्टल लागू करें -एफ deplond.yaml
अब, -ओ वाइड विकल्प का उपयोग करके पॉड्स के अधिक विवरण की जाँच करें:
> कुबेक्टल पॉड्स प्राप्त करें -इस चौड़ा
ऊपर दिए गए आउटपुट से, हम देख सकते हैं कि नए नोड बनाए जा रहे हैं और नोड पर शेड्यूल किए जा रहे हैं क्योंकि क्लस्टर से हम जिस नोड का उपयोग कर रहे हैं उस पर कोई दाग सक्रिय नहीं है। इसलिए, हमें यह सुनिश्चित करने के लिए विशेष रूप से एक टेंट को सक्रिय करने की आवश्यकता है कि पॉड्स केवल वांछित नोड पर निर्धारित हों। उसके लिए, हमें मास्टर नोड पर लेबल बनाने की आवश्यकता है:
> कुबेक्टल लेबल नोड्स मास्टर ऑन-मास्टर = सचपरिनियोजन को नोड चयनकर्ता के साथ कॉन्फ़िगर करें
एक नोडसेलेक्टर के साथ परिनियोजन को कॉन्फ़िगर करने के लिए, हम उसी प्रक्रिया का पालन करेंगे जो बिना किसी नोडसेलेक्टर के परिनियोजन के कॉन्फ़िगरेशन के लिए हुई है।
सबसे पहले, हम 'नैनो' कमांड के साथ एक YAML फ़ाइल बनाएंगे, जहाँ हमें परिनियोजन के कॉन्फ़िगरेशन को संग्रहीत करने की आवश्यकता होगी।
> नैनो nd.yamlअब, फ़ाइल में परिनियोजन परिभाषा सहेजें। कॉन्फ़िगरेशन परिभाषाओं के बीच अंतर देखने के लिए आप दोनों कॉन्फ़िगरेशन फ़ाइलों की तुलना कर सकते हैं।
अब, नीचे दिए गए आदेश के साथ नोड चयनकर्ता की तैनाती बनाएं:
> kubectl create -एफ nd.yaml
-ओ वाइड फ्लैग का उपयोग करके पॉड्स का विवरण प्राप्त करें:
> कुबेक्टल पॉड्स प्राप्त करें -इस चौड़ा
ऊपर दिए गए आउटपुट से, हम देख सकते हैं कि पॉड्स को मिनिक्यूब नोड पर तैनात किया जा रहा है। क्लस्टर में नए पॉड्स को कहां तैनात किया गया है, यह जांचने के लिए हम प्रतिकृतियों की गिनती बदलते हैं।
निम्न आदेश का उपयोग करके परिनियोजन पर नए परिवर्तन लागू करें:
> कुबेक्टल लागू करें -एफ nd.yaml
निष्कर्ष
इस लेख में, हमने कुबेरनेट्स में नोड चयनकर्ता कॉन्फ़िगरेशन बाधा का अवलोकन किया था। हमने सीखा कि कुबेरनेट्स में एक नोडसेलेक्टर क्या है और एक साधारण परिदृश्य की मदद से हमने सीखा कि नोडसेलेक्टर कॉन्फ़िगरेशन बाधाओं के साथ और बिना परिनियोजन कैसे बनाया जाए। यदि आप नोड चयनकर्ता अवधारणा के लिए नए हैं और सभी प्रासंगिक जानकारी पा सकते हैं, तो आप इस लेख का उल्लेख कर सकते हैं।