5

की अपस्ट्रीम कॉन्फ़िगरेशन में संलग्न करें, मैं डॉकर कंपोज़ (v2) चला रहा हूं और उनके पास नग्न्क्सक्स के साथ बैठा हुआ नोड सेवा (वेबसाइट) और पायथन आधारित एपीआई है।स्वचालित रूप से डॉकर कंटेनर को nginx लोड बैलेंसर

एक चीज जो मैं करना चाहता हूं वह अधिक कंटेनर जोड़कर सेवाओं को स्केल करने में सक्षम है। यदि मुझे समय से पहले पता है कि मेरे पास कितने कंटेनर होंगे, तो मैं नग्नेक्स अपस्ट्रीम कॉन्फ़िगरेशन को कंटेनर के आईपी के संदर्भों के साथ हार्डकोड कर सकता हूं जो डॉकर उपलब्ध कराता है। हालांकि, समस्या यह है कि मैं अपस्ट्रीम nginx कॉन्फ़िगरेशन गतिशील होना चाहता हूँ उदा। अगर मैं एक और डॉकर कंटेनर जोड़ता हूं, तो यह बस अपस्ट्रीम ब्लॉक में आईपी की अपस्ट्रीम सूची में कंटेनर का स्थान जोड़ता है।

मेरा विचार एक स्क्रिप्ट बनाना था जो कंटेनर बदलते समय एनवी चर का उपयोग कर अपस्ट्रीम सर्वर को स्वचालित रूप से जोड़ देगा लेकिन मुझे यकीन है कि कहां से शुरू करना है और एक अच्छा उदाहरण नहीं मिल रहा है।

उत्तर

2

इसे प्राप्त करने के कुछ तरीके हैं। आप जो संदर्भ दे रहे हैं उसे आमतौर पर सेवा खोज कहा जाता है और कई रूपों में आता है। मैं उनमें से दो का वर्णन करूंगा जो मैंने पहले उपयोग किया है।

पहला और सरलतम (जो एकल सर्वर के लिए ठीक काम करता है या केवल एक सर्वर पर स्थानीय रूप से कंटेनरों की खोज करता है) एक स्थानीय प्रॉक्सी है जो डॉकर सॉकेट या एपीआई का उपयोग करता है। https://github.com/jwilder/nginx-proxy लोकप्रिय लोगों में से एक है और कम्पोज़ में स्केलेबल सेवाओं के प्रोटोटाइप के लिए अच्छी तरह से काम करना चाहिए।

एक और तरीका (जो अधिक बहु-मेजबान अनुकूल है लेकिन अधिक जटिल) रजिस्ट्री (जैसे कि आदि या कंसुल) में सेवाओं को पंजीकृत करेगा और फिर गतिशील रूप से कॉन्फ़िगरेशन लिख रहा होगा। ऐसा करने के लिए, आप कंटेनरों और उनके बंदरगाहों को पंजीकृत करने के लिए पंजीकरण प्रणाली (जैसे https://github.com/gliderlabs/registrator) का उपयोग कर सकते हैं। फिर आपका प्रॉक्सी या एप्लिकेशन https://github.com/kelseyhightower/confd जैसे टेम्पलेट सिस्टम का उपयोग करके लिखित कॉन्फ़िगरेशन फ़ाइल का उपभोग कर सकता है।

+0

यह वही दिखता है जो मैं ढूंढ रहा था, धन्यवाद! – ExoticChimp

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