शुरुआती लोगों के लिए कुबेरनेट्स ट्यूटोरियल: मूल बातें, विशेषताएं, Archiटेक्चर
इस Kubernetes ट्यूटोरियल को शुरू करने से पहले, आइए जानें:
कुबेरनेट्स क्या है?
Kubernetes Google प्लेटफ़ॉर्म पर विकसित एक कंटेनर प्रबंधन प्रणाली है। Kubernetes विभिन्न प्रकार के भौतिक, आभासी और क्लाउड वातावरण में कंटेनरीकृत अनुप्रयोगों को प्रबंधित करने में मदद करता है। Google Kubernetes सैकड़ों से हज़ारों व्यक्तिगत सर्वरों के क्लस्टर पर चलने वाले जटिल अनुप्रयोगों को लगातार वितरित करने के लिए एक अत्यधिक लचीला कंटेनर उपकरण है।
आपको कंटेनरों की आवश्यकता क्यों है?
आज के इंटरनेट उपयोगकर्ता कभी भी डाउनटाइम स्वीकार नहीं करते हैं। इसलिए डेवलपर्स को अपनी सेवाओं को बाधित किए बिना रखरखाव और अपडेट करने का तरीका खोजना होगा।
इसलिए, कंटेनर एक अलग वातावरण है। इसमें एप्लिकेशन को चलाने के लिए आवश्यक सभी चीजें शामिल हैं। यह डेवलपर के लिए ऐप्स को संपादित करना और तैनात करना आसान बनाता है। इसके अलावा, कंटेनरीकरण वेब ऐप्स की पैकेजिंग, तैनाती और अपडेट के लिए एक पसंदीदा तरीका बन गया है।
Kubernetes द्वारा कौन सा कार्य किया जाता है?
Kubernetes लिनक्स कर्नेल है जिसका उपयोग वितरित सिस्टम के लिए किया जाता है। यह आपको नोड्स (सर्वर) के अंतर्निहित हार्डवेयर को अमूर्त बनाने में मदद करता है और संसाधनों के साझा पूल का उपभोग करने वाले अनुप्रयोगों के लिए एक सुसंगत इंटरफ़ेस प्रदान करता है।
कुबेरनेट्स का उपयोग क्यों करें?
Kubernetes आपको क्लाउड एप्लिकेशन और माइक्रोसर्विस के लिए संसाधन आवंटन और ट्रैफ़िक प्रबंधन को नियंत्रित करने में मदद करता है। यह सेवा-उन्मुख बुनियादी ढांचे के विभिन्न पहलुओं को सरल बनाने में भी मदद करता है। Kubernetes आपको यह सुनिश्चित करने की अनुमति देता है कि कंटेनरीकृत एप्लिकेशन कहाँ और कब चलते हैं और आपको उन संसाधनों और उपकरणों को खोजने में मदद करता है जिनके साथ आप काम करना चाहते हैं।
कुबेरनेट्स की विशेषताएं
यहां आवश्यक Kubernetes विशेषताएं दी गई हैं:
- स्वचालित शेड्यूलिंग
- स्व-उपचार क्षमताएँ
- स्वचालित रोलआउट और रोलबैक
- क्षैतिज स्केलिंग और लोड संतुलन
- विकास, परीक्षण और उत्पादन के लिए पर्यावरण स्थिरता प्रदान करता है
- बुनियादी ढांचा शिथिल रूप से जुड़ा हुआ है, प्रत्येक घटक एक अलग इकाई के रूप में कार्य कर सकता है
- संसाधन उपयोग का उच्च घनत्व प्रदान करता है
- उद्यम-तैयार सुविधाएँ प्रदान करता है
- अनुप्रयोग-केंद्रित प्रबंधन
- ऑटो-स्केलेबल बुनियादी ढांचा
- आप पूर्वानुमानित बुनियादी ढांचे का निर्माण कर सकते हैं
कुबेरनेट्स मूल बातें
अब इस Kubernetes ट्यूटोरियल में, हम Kubernetes की कुछ महत्वपूर्ण मूल बातें सीखेंगे:
-
Cluster
यह होस्ट (सर्वर) का एक संग्रह है जो आपको उनके उपलब्ध संसाधनों को एकत्रित करने में मदद करता है। इसमें रैम, सीपीयू, रैम, डिस्क और उनके डिवाइस को एक उपयोगी पूल में शामिल किया जाता है।
-
स्वामी
मास्टर घटकों का एक संग्रह है जो कुबेरनेट्स के नियंत्रण कक्ष का निर्माण करता है। इन घटकों का उपयोग सभी क्लस्टर निर्णयों के लिए किया जाता है। इसमें शेड्यूलिंग और क्लस्टर ईवेंट पर प्रतिक्रिया देना दोनों शामिल हैं।
-
आसंधि
यह एक एकल होस्ट है जो भौतिक या पर चलने में सक्षम है आभासी मशीनएक नोड को क्यूब-प्रॉक्सी, मिनीक्यूब और क्यूबलेट दोनों को चलाना चाहिए जिन्हें क्लस्टर का एक हिस्सा माना जाता है।
-
नाम स्थान
यह एक तार्किक क्लस्टर या वातावरण है। यह एक व्यापक रूप से इस्तेमाल की जाने वाली विधि है जिसका उपयोग एक्सेस को स्कोप करने या क्लस्टर को विभाजित करने के लिए किया जाता है।
Kubernetes Archiटेक्चर
नीचे विस्तृत कुबेरनेट्स आर्किटेक्चर आरेख दिया गया है:
मास्टर नोड
मास्टर नोड पहला और सबसे महत्वपूर्ण घटक है जो कुबेरनेट्स क्लस्टर के प्रबंधन के लिए जिम्मेदार है। यह सभी प्रकार के प्रशासनिक कार्यों के लिए प्रवेश बिंदु है। दोष सहिष्णुता की जांच करने के लिए क्लस्टर में एक से अधिक मास्टर नोड हो सकते हैं।
मास्टर नोड में API सर्वर, कंट्रोलर मैनेजर, शेड्यूलर और ETCD जैसे कई घटक होते हैं। आइए इन सभी को देखें।
एपीआई सर्वर: API सर्वर क्लस्टर को नियंत्रित करने के लिए प्रयुक्त सभी REST कमांडों के लिए प्रवेश बिंदु के रूप में कार्य करता है।
समयबद्धक
शेड्यूलर स्लेव नोड के लिए कार्यों को शेड्यूल करता है। यह प्रत्येक स्लेव नोड के लिए संसाधन उपयोग की जानकारी संग्रहीत करता है। यह कार्यभार वितरित करने के लिए जिम्मेदार है।
यह आपको यह ट्रैक करने में भी मदद करता है कि क्लस्टर नोड्स पर वर्किंग लोड का उपयोग कैसे किया जाता है। यह आपको उपलब्ध संसाधनों पर वर्कलोड रखने और वर्कलोड को स्वीकार करने में मदद करता है।
इत्यादि
etcd घटक कॉन्फ़िगरेशन विवरण और राइट मान संग्रहीत करते हैं। यह कमांड प्राप्त करने और काम करने के लिए सबसे अधिक घटक के साथ संचार करता है। यह नेटवर्क नियमों और पोर्ट फ़ॉरवर्डिंग गतिविधि का प्रबंधन भी करता है।
कार्यकर्ता/दास नोड्स
वर्कर नोड्स एक अन्य आवश्यक घटक है जिसमें कंटेनरों के बीच नेटवर्किंग का प्रबंधन करने, मास्टर नोड के साथ संचार करने के लिए सभी आवश्यक सेवाएं शामिल होती हैं, जो आपको अनुसूचित कंटेनरों को संसाधन आवंटित करने की अनुमति देता है।
- क्यूबलेट: API सर्वर से पॉड का कॉन्फ़िगरेशन प्राप्त करता है और यह सुनिश्चित करता है कि वर्णित कंटेनर चालू हैं।
- डॉकर कंटेनर: डाक में काम करनेवाला मज़दूर कंटेनर प्रत्येक वर्कर नोड पर चलता है, जो कॉन्फ़िगर किए गए पॉड को चलाता है
- Kube-प्रॉक्सी: Kube-प्रॉक्सी एकल कार्यकर्ता नोड पर सेवा निष्पादित करने के लिए लोड बैलेंसर और नेटवर्क प्रॉक्सी के रूप में कार्य करता है
- पॉड्स: पॉड एकल या एकाधिक कंटेनरों का संयोजन है जो तार्किक रूप से नोड्स पर एक साथ चलते हैं
अन्य प्रमुख शब्दावलियाँ
प्रतिकृति नियंत्रक
प्रतिकृति नियंत्रक एक ऑब्जेक्ट है जो पॉड टेम्पलेट को परिभाषित करता है। यह चल रही प्रतियों की संख्या को बढ़ाकर या घटाकर पॉड की समान प्रतिकृतियों को क्षैतिज रूप से स्केल करने के लिए मापदंडों को भी नियंत्रित करता है।
प्रतिकृति सेट
प्रतिकृति सेट प्रतिकृति नियंत्रक डिज़ाइन पर एक इंटरैक्शन है जिसमें नियंत्रक द्वारा प्रबंधित किए जाने वाले पॉड्स को पहचानने के तरीके में लचीलापन होता है। यह प्रतिकृति नियंत्रकों की जगह लेता है क्योंकि उनकी प्रतिकृति चयन क्षमता अधिक होती है।
तैनाती
परिनियोजन एक सामान्य कार्यभार है जिसे सीधे बनाया और प्रबंधित किया जा सकता है। परिनियोजन प्रतिकृति सेट को बिल्डिंग ब्लॉक के रूप में उपयोग करता है जो जीवन चक्र प्रबंधन की सुविधा जोड़ता है।
स्टेटफुल सेट
यह एक विशेष पॉड नियंत्रण है जो ऑर्डरिंग और विशिष्टता प्रदान करता है। इसका उपयोग मुख्य रूप से बारीक नियंत्रण के लिए किया जाता है, जिसकी आपको तैनाती क्रम, स्थिर नेटवर्किंग और लगातार डेटा के संबंध में विशेष आवश्यकता होती है।
डेमन सेट
डेमन सेट पॉड कंट्रोलर का एक और विशेषीकृत रूप है जो क्लस्टर में प्रत्येक नोड पर पॉड की एक प्रति चलाता है। इस प्रकार का पॉड कंट्रोलर पॉड्स को तैनात करने का एक प्रभावी तरीका है जो आपको रखरखाव करने की अनुमति देता है और नोड्स के लिए स्वयं सेवाएँ प्रदान करता है।
कुबेरनेट्स बनाम डॉकर स्वार्म
यहाँ इनके बीच महत्वपूर्ण अंतर दिए गए हैं कुबेरनेट्स बनाम डॉकर.
प्राचल | डोकर झुंड | Kubernetes |
---|---|---|
स्केलिंग | कोई ऑटोस्केलिंग नहीं | ऑटो स्केलिंग |
भार संतुलन | क्या स्वचालित लोड संतुलन होता है? | अपनी लोड बैलेंसिंग सेटिंग मैन्युअल रूप से कॉन्फ़िगर करें |
संग्रहण वॉल्यूम साझाकरण | किसी अन्य कंटेनर के साथ भंडारण मात्रा साझा करता है | एक ही पॉड के अंदर कई कंटेनरों के बीच स्टोरेज वॉल्यूम साझा करता है |
लॉगिन और निगरानी उपकरण का उपयोग | 3 का उपयोग करेंrd ELK जैसा पार्टी टूल | लॉगिंग और निगरानी के लिए एक अंतर्निहित उपकरण प्रदान करें। |
स्थापना | आसान और तेज़ | जटिल एवं समय लेने वाला |
जीयूआई | GUI उपलब्ध नहीं है | GUI उपलब्ध है |
अनुमापकता | स्केलिंग अप K8S की तुलना में तेज़ है, लेकिन क्लस्टर शक्ति उतनी मजबूत नहीं है | स्वार्म की तुलना में स्केलिंग धीमी है, लेकिन मजबूत क्लस्टर स्थिति की गारंटी देता है लोड बैलेंसिंग के लिए मैन्युअल सेवा कॉन्फ़िगरेशन की आवश्यकता होती है |
भार संतुलन | एक अंतर्निहित लोड संतुलन तकनीक प्रदान करता है | अद्यतन करते समय सेवाओं को बनाए रखने के लिए प्रक्रिया शेड्यूलिंग |
अपडेट और रोलबैक डेटा वॉल्यूम लॉगिंग और मॉनिटरिंग | प्रगतिशील अद्यतन और सेवा स्वास्थ्य निगरानी। | केवल एक ही पॉड में कंटेनरों के साथ साझा किया गया इनबिल्ट लॉगिंग और मॉनिटरिंग टूल। |
कुबेरनेट्स के लाभ
- पॉड्स के साथ सेवा का आसान संगठन
- इसे गूगल द्वारा विकसित किया गया है, जो उद्योग जगत में वर्षों का बहुमूल्य अनुभव लेकर आया है।
- कंटेनर ऑर्केस्ट्रेशन टूल्स के बीच सबसे बड़ा समुदाय
- ऑन-प्रिमाइसेस, SAN और पब्लिक क्लाउड सहित विभिन्न प्रकार के स्टोरेज विकल्प प्रदान करता है
- अपरिवर्तनीय बुनियादी ढांचे के सिद्धांतों का पालन करता है
- Kubernetes ऑन-प्रिमाइसेस बेयर मेटल, ओपनस्टैक, पब्लिक क्लाउड चला सकता है गूगल, Azure, एडब्ल्यूएस, आदि
- यह आपको विक्रेता लॉक संबंधी समस्याओं से बचने में मदद करता है, क्योंकि यह किसी भी विक्रेता-विशिष्ट API या सेवाओं का उपयोग कर सकता है, सिवाय उन स्थानों के जहां Kubernetes अमूर्तता प्रदान करता है, जैसे लोड बैलेंसर और स्टोरेज।
- कुबेरनेट्स का उपयोग करके कंटेनरीकरण पैकेज सॉफ़्टवेयर को इन लक्ष्यों को पूरा करने की अनुमति देता है। यह उन अनुप्रयोगों को सक्षम करेगा जिन्हें बिना किसी डाउनटाइम के रिलीज़ और अपडेट करने की आवश्यकता है।
- कुबेरनेट्स आपको यह सुनिश्चित करने की अनुमति देता है कि कंटेनरीकृत अनुप्रयोग जहां और जब आप चाहें, चलें और आपको उन संसाधनों और उपकरणों को खोजने में मदद करता है जिन पर आप काम करना चाहते हैं।
कुबेरनेट्स के नुकसान
- Kubenetes डैशबोर्ड उतना उपयोगी नहीं है जितना होना चाहिए
- ऐसे वातावरण में जहां सारा विकास स्थानीय स्तर पर किया जाता है, कुबेरनेट्स थोड़ा जटिल और अनावश्यक है।
- सुरक्षा बहुत प्रभावी नहीं है.
सारांश
- कंटेनर किसी संगठन को सेवाओं में बाधा डाले बिना रखरखाव और अद्यतन करने में मदद करता है
- कुबेरनेट्स गूगल प्लेटफॉर्म पर विकसित कंटेनर प्रबंधन प्रणाली का एक उदाहरण है।
- Kubernetes का उपयोग करने का सबसे बड़ा लाभ यह है कि यह ऑन-प्रिमाइसेस ओपनस्टैक, सार्वजनिक क्लाउड गूगल, Azure, एडब्ल्यूएस, आदि।
- Kubernetes स्वचालित शेड्यूलिंग और स्व-उपचार क्षमताएं प्रदान करता है।
- Cluster, मास्टर, नोड और नेमस्पेस कुबेरनेट्स के महत्वपूर्ण बुनियादी तत्व हैं
- मास्टर नोड और कार्य नोड कुबेरनेट्स आर्किटेक्चर के महत्वपूर्ण घटक हैं।
- प्रतिकृति नियंत्रक, प्रतिकृति सेट, परिनियोजन, स्टेटफुल सेट, डेमन सेट कुबेरनेट्स में उपयोग किए जाने वाले अन्य महत्वपूर्ण शब्द हैं।
- डॉकर स्वार्म ऑटो-स्केलिंग की अनुमति नहीं देता है जबकि कुबेरनेट्स ऑटो-स्केलिंग की अनुमति देता है।
- Kubenetes की सबसे बड़ी कमी यह है कि इसका डैशबोर्ड बहुत उपयोगी और प्रभावी नहीं है