यदि आप अपने विकास कार्यप्रवाह को कंटेनरीकृत कर रहे हैं, तो आप सहमत होंगे कि संस्करण नियंत्रण के लिए डॉकर सबसे अच्छे विकल्पों में से एक है। हालांकि, डॉकर झुंड जटिल ऐप्स को व्यवस्थित करने के लिए उपयोग की जाने वाली डॉकर की विशेषताओं में से एक है।
डॉकर झुंड के काम करने वाले तंत्र को पहली बार में क्रैक करना मुश्किल हो सकता है। लेकिन कोई चिंता नहीं, हम इस लेख में इसे तोड़ देंगे। तो डॉकर झुंड क्या है? इसका उपयोग क्यों करें? और यह कैसे काम करता है?
डॉकर झुंड क्या है, और यह कैसे काम करता है?
डॉकर झुंड निर्दिष्ट कार्यों को वितरित करने के लिए क्लस्टर के रूप में नेटवर्क किए गए डॉकर होस्ट (कंप्यूटर) के समूह को संदर्भित करता है। इस क्लस्टर में प्रत्येक डॉकर होस्ट एक नोड है, जिसे वर्कर नोड भी कहा जाता है।
कार्यों के कुशल वितरण को सुनिश्चित करने के लिए, आपको एक प्रबंधक नोड की आवश्यकता है। आदर्श रूप से, एक डॉकर झुंड मोड आरंभीकरण प्रबंधक नोड से शुरू होता है, और बाद के नोड श्रमिक बन जाते हैं।
ऑपरेटर के रूप में, आपको केवल प्रबंधक नोड के साथ बातचीत करने की आवश्यकता होती है, जो श्रमिकों को निर्देश देता है। अनिवार्य रूप से, कार्यकर्ता नोड्स प्रबंधक नोड से कार्य आवंटन प्राप्त करते हैं और तदनुसार उन्हें निष्पादित करते हैं।
हालांकि, प्रबंधक नोड कार्य निष्पादन (एक कार्यकर्ता के रूप में) में भी भाग ले सकता है या प्रबंधन को पूरी तरह से सामना कर सकता है। आप प्रबंधक की स्थिति से स्विच करके उसके कार्य शेड्यूलिंग को रोक सकते हैं सक्रिय प्रति नाली. लेकिन इस दोहरे कार्य को असाइन करने का आपका निर्णय कई कारकों पर निर्भर हो सकता है। अनिवार्य रूप से, आप यह सुनिश्चित करना चाहते हैं कि ऐसा करने से पहले कई भूमिकाओं को संभालने के लिए उसके पास पर्याप्त संसाधन हों।
नोड्स विफल हो जाते हैं। इसलिए प्रबंधक नोड सक्रिय रूप से प्रत्येक कार्यकर्ता नोड की स्थिति की निगरानी करता है और कार्य को विफल नोड से दूसरे में पुनर्निर्धारित करने के लिए एक असफल-सहिष्णु तंत्र को सक्रिय करता है।
लेकिन क्या होगा अगर मैनेजर नोड भी क्रैश हो जाए? दिलचस्प बात यह है कि झुंड चलता रहता है। एकमात्र नुकसान यह है कि अब आप क्लस्टर को नियंत्रित करने के लिए प्रबंधक नोड के साथ संवाद करने में सक्षम नहीं होंगे।
इसे रोकने के लिए सामान्य विफल-सुरक्षित दृष्टिकोण कई नोड्स को प्रबंधक की भूमिका सौंपना है (डॉकर प्रति क्लस्टर अधिकतम सात की सिफारिश करता है)। फिर आप उनमें से प्राथमिक प्रबंधक नोड का चयन कर सकते हैं। जब प्राथमिक प्रबंधक दुर्घटनाग्रस्त हो जाता है, तो स्टैंडबाय प्रबंधकों में से एक भूमिका निभाता है।
हालाँकि, आपको नोड्स के बीच रोल स्विचिंग या क्लस्टर में राज्य रखरखाव के बारे में चिंता करने की ज़रूरत नहीं है। डॉकर स्वार्मकिट में निर्मित राफ्ट सर्वसम्मति एल्गोरिदम (एक गलती-सहनशील विधि) इसका ख्याल रखता है।
डॉकर झुंड का उपयोग क्यों करें?
डॉकर झुंड उच्च स्केलेबिलिटी संभावनाओं वाले जटिल ऐप्स को तैनात करने के लिए आसान है। इसके प्राथमिक उपयोग के मामलों में से एक माइक्रोसर्विसेज का विकेंद्रीकरण करना है। फिर प्रत्येक माइक्रोसर्विस अन्य वर्कर नोड्स के साथ एक समान कंटेनर साझा करता है।
डॉकर झुंड का उपयोग करने का एक अन्य कारण यह है कि कई होस्ट एक साथ एक क्लस्टर में कार्य चलाते हैं। यह डॉकर कंपोज़ के विपरीत है, जो आपको केवल एक डॉकर इंजन पर कई कंटेनर चलाने की अनुमति देता है।
डॉकर झुंड की यह मापनीय विशेषता ऐप्स को शून्य विलंबता के साथ लगातार उपलब्ध होने देती है। यह उन कारणों में से एक है जो आप करना चाहते हैं अन्य वर्चुअलाइजेशन टूल पर डॉकर चुनें.
इसके अलावा? एकल डॉकर कंटेनरों के विपरीत, जहां एक कंटेनर विफल होने पर रुक जाता है, डॉकर झुंड स्वचालित रूप से उपलब्ध कार्यकर्ता नोड्स के बीच कार्यों को पुनर्वितरित करता है जब भी कोई विफल होता है।
डॉकर झुंड प्रत्येक राज्य का बैकअप भी रखता है। तो आप हमेशा नए झुंड विन्यास को पूर्व की स्थिति में वापस ला सकते हैं। कहें कि पिछले झुंड पर प्रबंधक नोड विफल रहता है; आप अधिक प्रबंधक नोड्स के साथ एक नया क्लस्टर शुरू कर सकते हैं और पिछले एक के कॉन्फ़िगरेशन को अनुकूलित करने के लिए इसे वापस ला सकते हैं।
यह उल्लेख करना भी महत्वपूर्ण है कि प्रबंधक नोड और कार्यकर्ता नोड्स के बीच की बातचीत सुरक्षित है।
डॉकर के पास कई विकल्प हैं, और निकटतम में से एक कुबेरनेट्स है। हालांकि, डॉकर झुंड का उपयोग करना आसान है और अधिक स्वचालित है। उदाहरण के लिए, जबकि आपको कुबेरनेट्स जैसे कुछ अन्य ऑर्केस्ट्रेशन टूल में मैन्युअल रूप से लोड को संतुलित करने की आवश्यकता हो सकती है, डॉकर झुंड में स्वचालित लोड संतुलन होता है, जो देवओप्स के लिए जीवन को आसान बनाता है।
डॉकर झुंड वास्तुकला
डॉकर झुंड वास्तुकला सेवाओं, नोड्स और कार्यों के इर्द-गिर्द घूमती है। हालांकि, स्टैक को सफलतापूर्वक चलाने में प्रत्येक की भूमिका होती है।
सेवाएं
डॉकर झुंड सेवा डॉकर छवि के विन्यास का विवरण देती है जो सभी कंटेनरों को झुंड में चलाती है। इसमें क्लस्टर में कार्यों के बारे में जानकारी शामिल है। उदाहरण के लिए, एक सेवा एक का वर्णन कर सकती है Dockerized SQL सर्वर सेटअप.
जब आप कोई सेवा चलाते हैं, तो यह प्रबंधक नोड को इसके कॉन्फ़िगरेशन के साथ समन्वयित करने के लिए बाध्य करती है। प्रबंधक नोड तब सेवा में निर्दिष्ट सेटिंग्स के आधार पर बाकी कार्यकर्ता नोड्स को चलाता है।
डॉकर झुंड में सेवाएं वैश्विक या दोहराई जा सकती हैं।
उनके बीच अंतर यह है कि जहां वैश्विक सेवाएं क्लस्टर में सभी नोड्स के लिए केवल एक कार्य को परिभाषित करती हैं, वहीं प्रतिरूपित सेवाएं प्रति नोड कार्यों की संख्या निर्दिष्ट करती हैं।
नोड्स
डॉकर झुंड में एक नोड पूरे डॉकर रनटाइम का एक उदाहरण है, जिसे डॉकर इंजन भी कहा जाता है। झुंड नोड्स भौतिक या आभासी मशीन हो सकते हैं। इसे समान प्रक्रियाओं (कंटेनरों) को चलाने वाले कंप्यूटरों के नेटवर्क के रूप में सोचें।
आमतौर पर, नोड्स वास्तविक जीवन के अनुप्रयोगों में डॉकर इंजन चलाने वाले कई कंप्यूटरों और सर्वरों पर फैले होते हैं। और जैसा कि पहले उल्लेख किया गया है, भूमिका के आधार पर एक नोड या तो प्रबंधक या कार्यकर्ता नोड हो सकता है।
प्रबंधक नोड झुंड के दिल की धड़कन को सुनता है और कार्यकर्ता नोड्स को नियंत्रित करता है, जो प्रबंधक नोड द्वारा उन्हें सौंपे गए कार्यों को निष्पादित करता है। जैसा कि पहले कहा गया है, आपके पास झुंड में एक से अधिक प्रबंधक नोड हो सकते हैं। लेकिन आदर्श रूप से, संख्या को सात से कम तक सीमित करने का प्रयास करें, क्योंकि बहुत अधिक प्रबंधक नोड्स जोड़ने से झुंड का प्रदर्शन कम हो सकता है।
कार्य
एक कार्य डॉकर झुंड में प्रत्येक नोड को सौंपे गए कार्य को परिभाषित करता है। पृष्ठभूमि में, डॉकर झुंड में कार्य शेड्यूलिंग तब शुरू होती है जब एक ऑर्केस्ट्रेटर कार्य बनाता है और उन्हें एक शेड्यूलर को भेजता है, जो प्रत्येक कार्य के लिए एक कंटेनर को इंस्टेंट करता है।
प्रबंधक नोड तब शेड्यूलर का उपयोग करता है और डॉकर सेवा में निर्दिष्ट और आवश्यकतानुसार नोड्स को कार्य सौंपता है और पुन: असाइन करता है।
डॉकर झुंड बनाम। डॉकर रचना: अंतर क्या हैं?
लोग अक्सर डॉकर कंपोज़ और डॉकर झुंड का परस्पर उपयोग करते हैं। हालाँकि दोनों में कई कंटेनर चलाना शामिल है, लेकिन वे अलग हैं।
जबकि डॉकर कंपोज़ आपको एक ही होस्ट पर कई कंटेनर चलाने देता है, डॉकर झुंड उन्हें क्लस्टर में कई डॉकर इंजनों पर वितरित करता है।
जब आप अपने ऐप में प्रत्येक सेवा के लिए अलग-अलग कंटेनरों को स्पिन करने की आवश्यकता होती है, तो आप डॉकर कंपोज़ का उपयोग करते हैं। इस प्रकार, जब एक घटक दुर्घटनाग्रस्त हो जाता है, तो यह दूसरों के साथ हस्तक्षेप नहीं करता है। हालाँकि, जब होस्ट मशीन विफल हो जाती है, तो पूरा ऐप भी क्रैश हो जाता है।
हालाँकि, डॉकर झुंड आपको क्लस्टर नोड्स पर कई कंटेनर चलाने में मदद करता है। तो, आपके ऐप का प्रत्येक घटक कई नोड्स पर बैठता है। और जब एक ऐप घटक को संभालने वाला एक नोड क्रैश हो जाता है, तो झुंड अपने कार्य को क्लस्टर के भीतर दूसरे नोड को आवंटित करता है और डाउनटाइम को रोकने के लिए चल रहे कार्यों को पुनर्निर्धारित करता है।
इसलिए, जबकि आपके पास डॉकर कंपोज़ पर डाउनटाइम हो सकता है, डॉकर झुंड यह सुनिश्चित करता है कि आपका ऐप बैकअप सर्वर (वर्कर नोड्स) की मदद से चलता रहे। हालाँकि, डॉकर 1.13 डॉकर कंपोज़ परिनियोजन को झुंड मोड में उपयोग करने का समर्थन करता है डोकर स्टैक परिनियोजन आज्ञा।
डॉकर झुंड आपको जटिल ऐप्स तैनात करने में मदद करता है
कंटेनरीकरण ने वर्चुअल मशीनों को निरंतर एकीकरण और निरंतर वितरण (सीआई/सीडी) सॉफ्टवेयर डिजाइन में पीछे छोड़ दिया है। इसलिए, यदि आप एक अमूल्य DevOps विशेषज्ञ बनना चाहते हैं, तो डॉकर झुंड तंत्र की बारीकियों को समझना एक प्लस कौशल है।
आप शायद जानते हैं कि डॉकर कंटेनर को कैसे स्पिन करना है या यहां तक कि एक होस्ट में कई कंटेनरों के लिए डॉकर कंपोज़ कैसे चलाना है। लेकिन डॉकर झुंड जटिल वास्तुकला वाले ऐप्स को तैनात करने के लिए आसान है। यह प्रक्रियाओं को इकाइयों में विभाजित करता है, रनटाइम एक्सेस में सुधार करता है, और डाउनटाइम की संभावना को कम करता है या समाप्त भी करता है।