2015-07-22 22 views
21

मैंने हाल ही में एडब्ल्यूएस द्वारा कार्य परिभाषा का उपयोग करके डॉकर कंटेनरों को तैनात करने की कोशिश की। रास्ते में, मैं निम्नलिखित प्रश्नों में आया।अमेज़ॅन ईसीएस क्लस्टर को कैसे समझें

  1. क्लस्टर में कोई उदाहरण कैसे जोड़ें? अमेज़ॅन ईसीएस कंसोल का उपयोग करके एक नया क्लस्टर बनाते समय, नए क्लस्टर में एक नया ec2 उदाहरण कैसे जोड़ें। दूसरे शब्दों में, एक नया ec2 उदाहरण लॉन्च करते समय, अमेज़ॅन ईसीएस के तहत उपयोगकर्ता द्वारा बनाए गए क्लस्टर को आवंटित करने के लिए किस कॉन्फ़िगर की आवश्यकता होती है।

  2. क्लस्टर में कितने ईसीएस उदाहरण की आवश्यकता है, और कारक क्या हैं?

  3. यदि मेरे पास क्लस्टर में दो उदाहरण हैं (ins1, ins2), और मेरे वेबएप, डीबी कंटेनर ins1 में चल रहे हैं। चलने वाली सेवा को अद्यतन करने के बाद (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service.html के माध्यम से), मैं देख सकता हूं कि "ins1" में पुरानी सेवा को निकालने से पहले, नई बनाई गई सेवा "ins2" में चल रही है। मेरा सवाल यह है कि मेरे वेबपैप कंटेनर को किसी अन्य इंस्टेंस में आवंटित करने के बाद, एक्सेस आईपी पता एक और उदाहरण आईपी बन जाता है। कैसे वेबपैड पर एक ही आईपी पता पहुंच को रोकने के लिए या समाधान का समाधान कैसे करें? न केवल आईपी, नए उदाहरण में बदलने के बाद डेटा के बारे में क्या?

उत्तर

31

ये वास्तव में तीन काफी अलग सवाल कर रहे हैं, तो यह सबसे अच्छा यहाँ तदनुसार अलग अलग सवाल में उन्हें विभाजित करने के लिए हो सकता है - मैं परवाह किए बिना एक जवाब प्रदान करने के लिए कोशिश करता हूँ:

  1. Amazon ECS Container Instances परोक्ष रूप से जुड़ जाते हैं, यह प्रत्येक उदाहरण पर Amazon ECS Container Agent का काम आपके द्वारा बनाए गए और नामित क्लस्टर के साथ पंजीकृत करने के लिए, विवरण के लिए concepts और lifecycle देखें। इसके लिए काम करने के लिए, आपको Launching an Amazon ECS Container Instance में उल्लिखित चरणों का पालन करना होगा, इसे मैन्युअल रूप से या स्वचालन के माध्यम से करें। कदम 10 से सावधान रहें .:

डिफ़ॉल्ट रूप से, अपने कंटेनर उदाहरण अपने डिफ़ॉल्ट क्लस्टर में लॉन्च किया गया। यदि आप डिफ़ॉल्ट के बजाय अपने स्वयं के क्लस्टर में लॉन्च करना चाहते हैं, तो उन्नत विवरण सूची चुनें और उपयोगकर्ता डेटा फ़ील्ड में निम्न स्क्रिप्ट पेस्ट करें, अपने क्लस्टर के नाम के साथ your_cluster_name को प्रतिस्थापित करें।

#!/bin/bash 
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config 
  1. आप केवल ईसीएस, इस तरह के रूप में काम करने के लिए है क्योंकि क्लस्टर खुद अपनी ओर से एडब्ल्यूएस द्वारा किया जाता है एक उदाहरण की जरूरत है।

    • क्योंकि कंटेनर मेजबान बस नियमित अमेज़न EC2 उदाहरण हैं, आप एडब्ल्यूएस सर्वोत्तम प्रथाओं का पालन करें और इतना है कि एक (दुर्लभ दो या तीन Availability Zones (AZ) से अधिक उन्हें प्रसार करने के लिए की आवश्यकता होगी: इस उच्च उपलब्धता परिदृश्यों हालांकि के लिए पर्याप्त नहीं होगा) एजेड का आउटेज आपके क्लस्टर को प्रभावित नहीं करता है, क्योंकि ईसीएस आपके कंटेनरों को एक अलग होस्ट इंस्टेंस में माइग्रेट कर सकता है (बशर्ते आपके क्लस्टर में पर्याप्त अतिरिक्त क्षमता हो)।
    • कंटेनरों को सुविधाजनक बनाने वाली कई उन्नत क्लस्टरिंग प्रौद्योगिकियों की अपनी स्वयं की सेवा ऑर्केस्ट्रेशन परतें होती हैं और आमतौर पर उच्च उपलब्धता सेटअप के लिए असमान संख्या> = 3 (सेवा) उदाहरणों की आवश्यकता होती है। आप उदाहरण के लिए Administration के भीतर सेक्शन इष्टतम क्लस्टर आकार में इसके बारे में अधिक पढ़ सकते हैं (Running CoreOS with AWS EC2 Container Service भी देखें)।
  2. यह उच्च उपलब्धता और सेवा आर्केस्ट्रा पहले से ही 2 में उल्लेख वापस विषयों पर संदर्भित करता है, अधिक सटीकता से अपने जो अधिक प्रचलित भी जब सामान्य रूप में कंटेनर प्रौद्योगिकियों और सूक्ष्म सेवाओं में उपयोग कर रहा हो जाता है service discovery की समस्या, का सामना कर रहे विशेष:

    • इससे परिचित होने के लिए, मैं विशेष रूप से आपके उपयोग के मामले पर केंद्रित उत्कृष्ट उत्कृष्टता के लिए जेफ लिंडसे के Understanding Modern Service Discovery with Docker की अनुशंसा करता हूं।
    • जेफ भी तेजी से लोकप्रिय Consul, जो सेवाओं खुद को रजिस्टर करने के लिए और एक DNS या HTTP इंटरफ़ेस के माध्यम से अन्य सेवाओं की खोज करने के लिए यह आसान बनाता है की एक कंटेनरीकृत संस्करण का कहना है (Running Consul in Docker और gliderlabs/docker-consul देखें)।
+1

भयानक उत्तर! मुझे उम्मीद है कि यह अभी भी काम करता है लेकिन आप मुझे उस प्रकार के रूप में मारते हैं जो कुछ जवाब बदलता है तो उसका जवाब अपडेट करेगा। – the0ther

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