5

का उपयोग किये बिना डॉकर में सेवा खोज मैं डॉकर और माइक्रोसर्विसेज के लिए नया हूं। मैंने अपने वेब-ऐप को माइक्रोस्कोप में विघटित करना शुरू कर दिया है और वर्तमान में, मैं मैन्युअल कॉन्फ़िगरेशन कर रहा हूं।कंसुल

कुछ अध्ययन के बाद, मैं डॉकर स्विम मोड में आया जो सेवा की खोज की अनुमति देता है। इसके अलावा, मैं यूरेका और कंसुल जैसे सेवा खोज के लिए अन्य टूल्स में आया था।

मेरा मुख्य उद्देश्य सेवा नाम के साथ कर्ल कॉल में आईपी पते को प्रतिस्थापित करना और उसी सेवा के कई उदाहरणों के बीच लोड संतुलन को प्रतिस्थापित करना है।

यानी पूर्व के लिए। कर्ल http://192.168.0.11:8080/ कर्ल http://my-service

मुझे अपनी सेवाओं की भाषा को स्वतंत्र रखना है।

कृपया सुझाव दें, क्या मुझे सेवा खोज के लिए डॉकर स्वार के साथ कंसुल का उपयोग करने की आवश्यकता है या मैं इसे बिना कंसुल के कर सकता हूं? क्या फायदे हैं?

+0

आप एटीसीडी या जुकीपर का भी उपयोग कर सकते हैं। –

उत्तर

5

नए "झुंड मोड" के साथ, आप कई स्वार नोड्स में क्लस्टर सेवाओं को बनाने के लिए डॉकर services का उपयोग कर सकते हैं। फिर आप उन अनुरोधों तक पहुंच सकते हैं, जो आपके अनुरोधों में नोड नाम की बजाय सेवा नाम का उपयोग करके लोड-संतुलित हैं।

यह केवल स्वामी के ओवरले नेटवर्क के भीतर नोड्स पर लागू होता है। यदि आपकी क्लाइंट सिस्टम एक ही झुंड का हिस्सा हैं, तो खोज को किसी भी बाहरी समाधान की आवश्यकता के बिना आउट-ऑफ-द-बॉक्स काम करना चाहिए।

दूसरी ओर, यदि आप झुंड के बाहर सिस्टम से सेवाओं को खोजने के लिए सक्षम होना चाहते हैं, तो आपको कुछ विकल्प हैं:

  • राज्यविहीन सेवाओं के लिए, आप डोकर के routing mesh, इस्तेमाल कर सकते हैं जो कर देगा सभी बंदरगाह नोड्स में उपलब्ध सेवा बंदरगाह। इस तरह आप केवल झुंड में किसी भी नोड पर इंगित कर सकते हैं, और डॉकर आपके अनुरोध को उस नोड पर निर्देशित करेगा जो सेवा चला रहा है (इस पर ध्यान दिए बिना कि आपके द्वारा मारा गया नोड सेवा है या नहीं)।
  • यदि आपको रूटिंग या विभिन्न राज्यों से निपटने की आवश्यकता है तो अपनी तलवार सेवाओं के सामने एक वास्तविक लोड बैलेंसर का उपयोग करें। यह --mode global विकल्प के साथ लॉन्च किया गया यह सुनिश्चित करने के लिए या तो एक और डॉकर सेवा (यानी हैप्रोक्सी, nginx) लॉन्च हो सकता है यह सुनिश्चित करने के लिए कि यह सभी नोड्स पर चलता है, या एक अलग लोड-बैलेंसर जैसे कि साइट्रिक्स नेटस्केकर। आपको अपने सेवा कंटेनर को अपनी स्टार्टअप स्क्रिप्ट के माध्यम से या प्रावधान उपकरण (या उन्हें मैन्युअल रूप से जोड़कर) के माध्यम से एलबी को पुन: कॉन्फ़िगर करना होगा।
  • बाह्य सेवा खोज के लिए कंसुल जैसी कुछ का उपयोग करें। संभवतः सेवाओं को जोड़ने के लिए registrator के संयोजन के साथ। इस परिदृश्य में आप बस अपने बाहरी क्लाइंट को DNS रिज़ॉल्यूशन (या API का उपयोग करने के लिए) के लिए कंसुल सर्वर/क्लस्टर का उपयोग करने के लिए कॉन्फ़िगर करते हैं।

आप निश्चित रूप से बस अपने सेवा उपभोक्ताओं को भी झुंड में ले जा सकते हैं। यदि आप अलग-अलग भौतिक वीएलएएन (या वीपीसी इत्यादि) में सेवाओं से ग्राहकों को अलग कर रहे हैं, तो आपको यह सुनिश्चित करने के लिए अलग-अलग ओवरले नेटवर्क में अपने क्लाइंट कंटेनर लॉन्च करने की आवश्यकता होगी ताकि आप पहले से ही किसी भी भौतिक नेटवर्क अलगाव को प्रभावी ढंग से पराजित न करें।

+0

धन्यवाद @ जोन। मैं "स्वार मोड" सेवा खोज का प्रयास करने जा रहा हूं। – prranay

0

सेवा खोज (डीएनएस के माध्यम से) संस्करण 1.12 के बाद डॉकर में बनाया गया है। जब आप कस्टम नेटवर्क बनाते हैं (जैसे पुल या ओवरले यदि आपके पास एकाधिक होस्ट हैं) तो आप कंटेनर एक दूसरे से नाम के जरिए बात कर सकते हैं जब तक कि वे एक ही नेटवर्क का हिस्सा हों। आप प्रत्येक कंटेनर के लिए एक उपनाम भी प्राप्त कर सकते हैं जो कंटेनरों की सूची को राउंड-रॉबिन करेगा जो समान उपनाम है।सरल उदाहरण के लिए देखें:

https://linuxctl.com/docker-networking-options-bridge

0

जब तक आप अपने डोकर नेटवर्क के लिए पुल मोड का उपयोग कर रहे हैं और कहा कि नेटवर्क के अंदर अपने कंटेनर बनाने, सेवा खोज बॉक्स से बाहर आप के लिए उपलब्ध है।

आपके बुनियादी ढांचे को कई सर्वरों और उनके द्वारा वितरित माइक्रोसर्विसेज में विस्तार करने के बाद आपको अन्य टूल्स से सहायता प्राप्त करने की आवश्यकता होगी।

स्वार शुरू करने के लिए एक अच्छा उपकरण है, हालांकि, अगर मैं अपने उत्पादन भार के लिए अमेज़ॅन जैसे किसी भी आईएएएस प्रदाता की बात करता हूं तो मैं कंसुल से चिपकना चाहता हूं।

संबंधित मुद्दे