आइए हम उस पर विस्तार करें जो हमने कई सप्ताह पहले CentOS 7.2 के साथ शुरू किया था। इस गाइड में, हमने सीखा कि डॉकर 1.12 में निर्मित देशी क्लस्टरिंग और ऑर्केस्ट्रेशन कार्यक्षमता को कैसे आरंभ और प्रारंभ किया जाए। लेकिन हमारे पास केवल हमारा प्रबंधक नोड था और कोई अन्य कर्मचारी नहीं था। आज हम इसका विस्तार करेंगे।
मैं आपको दिखाऊंगा कि कैसे झुंड में गैर-सममित नोड्स को जोड़ा जाए, यानी एक फेडोरा 24 जो हमारे CentOS बॉक्स के साथ बैठेगा, और वे दोनों क्लस्टर में भाग लेंगे, सभी संबंधित फैंसी लोडबैलेंसिंग और क्या नहीं। बेशक, यह तुच्छ नहीं होगा, और हम कुछ बाधाओं का सामना करेंगे, और इसलिए यह काफी दिलचस्प होना चाहिए। मेरे बाद।
पूर्वापेक्षाएँ
झुंड में अतिरिक्त नोड्स को सफलतापूर्वक शामिल करने से पहले हमें कई चीजें करने की आवश्यकता है। एक, आदर्श रूप से, सभी नोड्स को डॉकर का एक ही संस्करण चलाना चाहिए, और देशी ऑर्केस्ट्रेशन का समर्थन करने के लिए यह कम से कम 1.12 होना चाहिए। CentOS की तरह, फेडोरा के पास अपने रेपो में नवीनतम निर्मित नहीं है, इसलिए आपको मैन्युअल रूप से या डॉकर रिपॉजिटरी का उपयोग करके सही सॉफ़्टवेयर संस्करण को मैन्युअल रूप से जोड़ने और स्थापित करने की आवश्यकता होगी, और फिर कुछ निर्भरता संघर्षों को ठीक करें। मैंने आपको दिखाया है कि यह CentOS के साथ कैसे किया जाता है, और व्यायाम समान है।
इसके अलावा, आपके सभी नोड्स को एक दूसरे के साथ संवाद करने में सक्षम होने की आवश्यकता होगी। जगह-जगह रूटिंग और फ़ायरवॉल नियम होने चाहिए ताकि प्रबंधक और कर्मचारी आपस में बात कर सकें। अन्यथा, आप नोड्स को झुंड में शामिल नहीं कर पाएंगे। समस्याओं को हल करने का सबसे आसान तरीका फ़ायरवॉल नियमों (iptables -F) को अस्थायी रूप से फ़्लश करना है, लेकिन यह आपकी सुरक्षा को ख़राब कर सकता है। सुनिश्चित करें कि आप पूरी तरह से समझते हैं कि आप क्या कर रहे हैं, और यह कि आप अपने नोड्स और पोर्ट के लिए सही नियम बनाते हैं।
डेमन से त्रुटि प्रतिक्रिया:नोड में शामिल होने से पहले समय समाप्त हो गया था। झुंड में शामिल होने का प्रयास पृष्ठभूमि में जारी रहेगा। अपने नोड की वर्तमान झुंड स्थिति देखने के लिए "डॉकर जानकारी" कमांड का प्रयोग करें।
आपको अपने मेजबानों पर वही डॉकर छवियां उपलब्ध कराने की आवश्यकता है। हमारे पिछले ट्यूटोरियल में, हमने एक अपाचे इमेज बनाई थी, और आपको अपने वर्कर नोड्स पर ऐसा ही करना होगा, या बनाई गई इमेज को वितरित करना होगा। यदि आप ऐसा नहीं करते हैं, तो आपको त्रुटियों का सामना करना पड़ेगा। यदि आपको डॉकर को स्थापित करने में सहायता की आवश्यकता है, तो कृपया मेरी परिचय मार्गदर्शिका और नेटवर्किंग ट्यूटोरियल पढ़ें।
7vwdxioopmmfp3amlm0ulimcu \_ websky.11 my-apache2:latest
localhost.localdomain शटडाउन 7 मिनट पहले खारिज कर दिया
"ऐसी कोई छवि नहीं:my-apache2:lat&"
चलिए शुरू करते हैं
तो हमारे पास हमारा CentOS बॉक्स है और चल रहा है, और यह सफलतापूर्वक कंटेनरों को पैदा कर रहा है। आप होस्ट पोर्ट का उपयोग करके सेवाओं से जुड़ सकते हैं, और सब कुछ पेचीदा दिखता है। इस समय, आपके झुंड में केवल प्रबंधक है।
कार्यकर्ताओं से जुड़ें
नए नोड जोड़ने के लिए, आपको ज्वाइन कमांड का उपयोग करना होगा। लेकिन आपको सबसे पहले यह पता लगाने की जरूरत है कि झुंड प्रबंधक के खिलाफ सही ढंग से प्रमाणित करने के लिए आपको किस टोकन, आईपी पते और पोर्ट को कार्यकर्ता नोड्स पर प्रदान करना होगा। फिर निष्पादित करें (फेडोरा पर)।
[रूट @ लोकलहोस्ट ~] # डॉकटर झुंड ज्वाइन-टोकन वर्कर
इस झुंड में एक कार्यकर्ता को जोड़ने के लिए, निम्नलिखित कमांड चलाएँ:
डोकर झुंड शामिल हों \
--टोकन SWMTKN-1-0xvojvlza90nrbihu6gfu3qm34ari7lwnza ... \
192.168.2.100:2377
यदि आप फ़ायरवॉल और रूटिंग नियमों को ठीक नहीं करते हैं, तो आपको टाइमआउट त्रुटियाँ मिलेंगी। यदि आप पहले से ही झुंड में शामिल हो गए हैं, तो ज्वाइन कमांड को दोहराने से अपना शोर पैदा होगा:
डेमन से त्रुटि प्रतिक्रिया:यह नोड पहले से ही झुंड का हिस्सा है। इस झुंड को छोड़ने और दूसरे झुंड में शामिल होने के लिए "डॉकर झुंड छुट्टी" का प्रयोग करें।
यदि कभी संदेह हो, तो आप झुंड को छोड़ सकते हैं और फिर से प्रयास कर सकते हैं:
[रूट @ लोकलहोस्ट ~] # डॉकटर झुंड छुट्टी
नोड ने झुंड छोड़ दिया।
डॉकर झुंड ज्वाइन --token
SWMTKN-1-0xvojvlza90nrbihu6gfu3qnza4 ... 192.168.2.100:2377
यह नोड एक कार्यकर्ता के रूप में झुंड में शामिल हो गया।
कार्यकर्ता नोड पर, आप स्थिति की जाँच करने के लिए docker info का उपयोग कर सकते हैं:
झुंड:सक्रिय
नोडआईडी:2i27v3ce9qs2aq33nofaon20k
प्रबंधक है:असत्य
नोड पता:192.168.2.103
इसी तरह, मैनेजर पर:
झुंड:सक्रिय
नोडआईडी:cneyene32jsb0t2inwfg5t5q
प्रबंधक है:सच
क्लस्टर आईडी:8degfhtsi7xxucvi6dxvlx1n4
प्रबंधक:1
नोड्स:3
आर्केस्ट्रा:
कार्य इतिहास अवधारण सीमा:5
बेड़ा:
स्नैपशॉट अंतराल:10000
दिल की धड़कन टिक:1
चुनाव टिक:3
डिस्पैचर:
दिल की धड़कन की अवधि:5 सेकंड
सीए कॉन्फ़िगरेशन:
समाप्ति अवधि:3 महीने
नोड पता:192.168.2.100
सेवाएं बनाएं या स्केल करें
अब, हमें यह देखने की जरूरत है कि डॉकटर नोड्स के बीच कंटेनरों को कैसे और कैसे वितरित करता है। मेरा परीक्षण बहुत हल्के भार के तहत एक सरलीकृत संतुलन एल्गोरिदम दिखाता है। एक या दो बार, डॉकर ने नए श्रमिकों को चल रही सेवाओं को फिर से वितरित करने का प्रयास नहीं किया, भले ही मैंने उन्हें स्केल करने और अपडेट करने का प्रयास किया हो। इसी तरह, एक अवसर पर, इसने पूरी तरह से वर्कर नोड पर एक नई सेवा बनाई। शायद यह सबसे अच्छा विकल्प था।
पूरी तरह से वर्कर नोड पर बनाई गई नई सेवा।
कुछ समय बाद, दोनों के बीच मौजूदा सेवाओं के लिए कंटेनरों का कुछ पुनर्वितरण हुआ, लेकिन इसमें कुछ समय लगा। नई सेवाओं ने ठीक काम किया। यह केवल शुरुआती अवलोकन है, इसलिए मैं इस बिंदु पर ज्यादा कुछ नहीं कह सकता। अभी के लिए, यह एक्सप्लोरिंग और ट्वीक करना शुरू करने के लिए एक अच्छा शुरुआती बिंदु है।
लोड बैलेंसिंग कुछ देर बाद शुरू हो जाती है।
निष्कर्ष
डॉकटर एक साफ-सुथरा छोटा जानवर है, और यह केवल बड़ा, अधिक जटिल, अधिक शक्तिशाली और निश्चित रूप से अधिक सुरुचिपूर्ण होता रहेगा। यह केवल समय की बात है जब यह एक बड़े, रसीले उद्यम द्वारा खाया जाता है। जब इसके मूल ऑर्केस्ट्रेशन की बात आती है, तो झुंड मोड काफी अच्छी तरह से काम करता है, लेकिन इसके एल्गोरिदम और स्केलेबिलिटी की शक्ति में पूरी तरह से टैप करने के लिए केवल कुछ कंटेनरों की तुलना में अधिक समय लगता है।
मेरा ट्यूटोरियल दिखाता है कि एक CentOS बॉक्स द्वारा चलाए जा रहे क्लस्टर में फेडोरा नोड को कैसे जोड़ा जाए, और दोनों ने साथ-साथ काम किया। लोडबैलेंसिंग के आसपास कुछ प्रश्न हैं, लेकिन यह कुछ ऐसा है जिसे मैं भविष्य के लेखों में तलाशूंगा। कुल मिलाकर, मुझे उम्मीद है कि यह एक सार्थक सबक था। हमने कुछ पूर्वापेक्षाओं और सामान्य समस्याओं का सामना किया है जिनका सामना आपको एक झुंड स्थापित करने का प्रयास करते समय हो सकता है, हमने कंटेनरों का एक गुच्छा तैयार किया है, और हमने संक्षिप्त रूप से यह भी बताया है कि सेवाओं का विस्तार और वितरण कैसे किया जाए। और याद रखना, 'यह सिर्फ एक शुरुआत है।
प्रोत्साहित करना।