आदर्श लक्ष्य परिदृश्य
हां, आपको लोड बैलेंसर का उपयोग करना चाहिए और एक बार में एक उदाहरण अपडेट करना चाहिए । मुझे यकीन नहीं है कि अंतर-कंटेनर संचार कहां आता है ।
एक उदाहरण के रूप में, कल्पना करें कि आपके पास एक लोड बैलेंसर है जो आपकी साइट ए की सेवा करता है उपयोगकर्ता केवल इसे एएस से कनेक्ट करते हैं और केवल इसे "ए"के रूप में जानते हैं । लोड बैलेंसर जानता है कि दो या अधिक बैकएंड हैं (बी, सी, आदि । ), और चाहे वे वीएम हों या कंटेनर कोई मायने नहीं रखते ।
फिर, आप बैकएंड को अपग्रेड करना चाहते हैं, जो इस मामले में अपाचे उदाहरण हैं ।
- लोड बैलेंसर के लिए पात्र बैकएंड से बी लें ताकि यह अब किसी भी ट्रैफ़िक को स्वीकार न करे ।
- वर्तमान में लाइव अनुरोधों की प्रतीक्षा करें और मौजूदा कनेक्शन बंद हो जाएं ।
- कंटेनर या अंतर्निहित वीएम को अपडेट करें जो बी परोसता है
- बी को पुनरारंभ करें, इसके लोड होने की प्रतीक्षा करें और काम करना शुरू करें
- टेस्ट बी यह सुनिश्चित करने के लिए कि यह नए अनुरोधों को ठीक से प्रस्तुत कर रहा है
- ट्रैफ़िक को फिर से सक्षम करने के लिए लोड बैलेंसर बैकएंड पूल में बी जोड़ें
फिर, सी, डी, आदि के लिए एक ही प्रक्रिया करें ।
ध्यान दें कि वहाँ एक डॉकर कंटेनरों के इन-प्लेस अपग्रेड के लिए खुला अनुरोध, नवंबर 2013 से, लेकिन इसमें बहुत प्रगति नहीं हुई है, इसलिए उपरोक्त समाधान यह है कि आपको इस बीच क्या करना चाहिए ।
मौजूदा लाइव साइट के लिए क्या करें
संभवतः, आप यह पूछ रहे हैं क्योंकि आप पहले से ही इस मॉडल में एक लाइव साइट चला रहे हैं और आप इसे डाउनटाइम के बिना अपग्रेड करना चाहेंगे । इसलिए, हमें ऊपर दिए गए आदर्श लक्ष्य राज्य तक पहुंचने की आवश्यकता है, लेकिन वृद्धिशील रूप से ।
आइए मान लें कि:
- आपके पास अपने कंटेनर की ओर इशारा करते हुए एक डीएनएस नाम है
- आपका कंटेनर कुछ आईपी पते पर चलता है
- आपके उपयोगकर्ता कंटेनर के आईपी पते को नहीं जानते हैं और यह कहीं भी हार्ड-कोडेड नहीं है
अगर इन मान्यताओं में गलत कर रहे हैं, आप चाहिए पहले यह तय है कि इस तरह से यह सही है.
फिर, इन चरणों का पालन करें:
- एक नए आईपी पर एक लोड बैलेंसर बनाएं और इसे मौजूदा कंटेनर में इसके एकमात्र बैकएंड के रूप में इंगित करें
- सीधे कंटेनर आईपी के बजाय लोड बैलेंसर को इंगित करने के लिए डीएनएस बदलें
- एक ही वीएम + कंटेनर सेटअप के साथ एक समान अपाचे बैकएंड जोड़ें
- अब आपके पास दो बैकएंड बी और सी के साथ एक लोड बैलेंसर है, इसलिए उन्हें एक बार में अपग्रेड करने के लिए "आदर्श लक्ष्य परिदृश्य" अनुभाग में निर्देशों का पालन करें
लोड बैलेंसर को कैसे अपडेट करें
आसान (होस्ट किया गया) तरीका
सबसे आसान विकल्प यह है कि आप अपना खुद का बैलेंसर न चलाएं । उदाहरण के लिए, यदि आप एक क्लाउड प्लेटफ़ॉर्म का उपयोग कर रहे हैं जो एक सेवा के रूप में लोड संतुलन प्रदान करता है, तो इसका उपयोग करने पर विचार करें और फिर लोड बैलेंसर का रखरखाव और अद्यतन कोई समस्या नहीं है ।
मैनुअल तरीका
यदि आप अपना खुद का लोड बैलेंसर चला रहे हैं, तो संकेत की एक और परत (यानी, डीएनएस) जोड़ने से मदद मिलेगी । आइए निम्नलिखित मान लें:
- कि हमारे पास एक होस्ट नाम है जो हमारे लोड बैलेंसर के आईपी को हल करता है जिसे हम अपडेट करना चाहते हैं
- हमारे लोड बैलेंसर में पी 1, पी 2, आदि का बैकएंड पूल है ।
हम निम्नानुसार आगे बढ़ते हैं:
और तुम हो गए।
विवरण, आरेख और टूलींग
इन राइट-अप और टूल को देखें जो आपको प्रक्रिया को स्वचालित करने में मदद कर सकते हैं, लेकिन सामान्य विचार समान है:
नैतिक
"कंप्यूटर विज्ञान में सभी समस्याओं को एक और स्तर के संकेत द्वारा हल किया जा सकता है, निश्चित रूप से बहुत अधिक अप्रत्यक्ष की समस्या को छोड़कर । " — डेविड व्हीलर