2015-12-11 7 views
5

मैं बाहरी उपयोग के लिए उनके सामने एक loadbalancer के साथ कई apiservers साथ एक क्लस्टर सेटअप का उपयोग कर रहा, बेयर मेटल पर एक स्थापना के साथ।कई apiservers साथ Kube-प्रॉक्सी master_url को कैसे कॉन्फ़िगर करें

High Availability Kubernetes Clusters दस्तावेज़ों में उल्लिखित की तरह, मैं अपने क्लस्टर के भीतर kubernetes सेवा का उपयोग कर आंतरिक लोडबेलिंग का उपयोग करना चाहता हूं। यह अब तक ठीक काम करता है, लेकिन मुझे यकीन नहीं है कि kube-proxy सेट अप करने का सबसे अच्छा तरीका क्या है। यह स्पष्ट रूप से सेवा आईपी का उपयोग नहीं कर सकता है, क्योंकि यह apiserver (master) से डेटा के आधार पर इस पर प्रॉक्सी कर रहा है। मैं किसी भी एपिसर्वर के आईपी का उपयोग कर सकता हूं, लेकिन इससे उच्च उपलब्धता खोने का कारण बन जाएगा। इसलिए, वर्तमान में देखे जाने वाला एकमात्र व्यवहार्य विकल्प मेरा बाहरी लोडबलरसर का उपयोग करना है, लेकिन ऐसा लगता है कि यह किसी भी तरह गलत है।

किसी किसी भी विचार या सर्वोत्तम प्रथाओं?

उत्तर

1

के स्थानीय प्रॉक्सी का उपयोग करता है यह काफी पुराना सवाल है, लेकिन जैसा कि समस्या बनी रहती है ... यहाँ यह जाता है।

कुबर्नेट्स रीस्टक्लिएंट में एक बग है, जो एक से अधिक आईपी/यूआरएल का उपयोग करने की अनुमति नहीं देता है, क्योंकि यह हमेशा सूची में पहला आईपी/यूआरएल उठाएगा। यदि आप एक बहु-मास्टर सेटअप में लोड बैलेंसर (जैसा आपने किया) का उपयोग नहीं करते हैं, तो यह उन उपकरणों में विफलता का एक बिंदु छोड़कर क्यूब-प्रॉक्सी और क्यूबलेट को भी प्रभावित करता है। समाधान शायद सबसे सुंदर समाधान नहीं है, लेकिन वर्तमान में (मुझे लगता है) आसान है।

अन्य समाधान (जिसे मैं पसंद करता हूं, लेकिन सभी के लिए काम नहीं कर सकता है और यह सभी समस्याओं का समाधान नहीं करता है) एक DNS प्रविष्टि बनाना है जो आपके एपीआई सर्वरों को लूटने के दौर में होगा, लेकिन जैसा कि नीचे दिए गए लिंक में से एक में बताया गया है , जो लोड संतुलन को हल करता है, न कि एचए।

आप निम्न लिंक में इस कहानी की प्रगति देख सकते हैं:

Kube-प्रॉक्सी/kubelet मुद्दा: https://github.com/kubernetes/kubernetes/issues/18174
restclient पीआर: https://github.com/kubernetes/kubernetes/pull/30588
"आधिकारिक" समाधान: https://github.com/kubernetes/kubernetes/issues/18174#issuecomment-199381822

0

मुझे लगता है कि जिस तरह से यह स्थापित किया जा करने के लिए है कि आप प्रत्येक मास्टर नोड पर एक Kube-प्रॉक्सी है कि है, इसलिए 127.0.0.1 पर अपने गुरु के लिए प्रत्येक Kube-प्रॉक्सी अंक/स्थानीय होस्ट

podmaster निर्धारित करता है जो एपीआई-सर्वर चलाना चाहिए, जो बारी-बारी कि मास्टर

+0

के बारे में पहला बिंदु: हाँ, मुझे ऐसा लगता है। मैं पहले से ही प्रत्येक मास्टर पर एक क्यूब-प्रॉक्सी चला रहा हूं, जो स्थानीय मास्टर को इंगित करता है। मेरी समस्या मास्टर नोड्स पर क्यूब-प्रॉक्सी के साथ नहीं है, लेकिन कार्यकर्ता नोड्स पर है। जिनके पास कनेक्ट करने के लिए स्थानीय मास्टर नहीं है। दूसरा बिंदु, afaik, गलत है। पॉडमास्टर दस्तावेज़ों के मुताबिक, केवल यह तय करने के लिए प्रयोग किया जाता है कि शेड्यूलर और नियंत्रक-प्रबंधक कहां तत्काल हैं, जबकि एपिसरवर सभी मास्टर इंस्टेंस पर चल रहा है। –

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