2016-02-03 12 views
5

Kubernetes LoadBalancer बनाना तत्काल लौटाता है (उदा: kubectl create -f ... या kubectl expose svc NAME --name=load-balancer --port=80 --type=LoadBalancer)।कुबर्नेट्स ने लोडबैंसर सेवा में बाहरी आईपी असाइन किए जाने तक कैसे प्रतीक्षा करें?

मैं खोल में प्रतीक्षा करने के लिए एक मैनुअल रास्ता पता:

external_ip="" 
while [ -z $external_ip ]; do 
    sleep 10 
    external_ip=$(kubectl get svc load-balancer --template="{{range .status.loadBalancer.ingress}}{{.ip}}{{end}}") 
done 

हालांकि यह आदर्श नहीं है:

  • आवश्यक है कम से कम 5 लाइनों बैश स्क्रिप्ट।
  • त्रुटि के मामले में भी अनंत प्रतीक्षा करें (अन्यथा एक टाइमआउट की आवश्यकता होती है जो बहुत सी रेखा गिनती को बढ़ाती है)।
  • शायद कुशल नहीं है; --wait या --wait-once का उपयोग कर सकते हैं लेकिन उन आदेशों का उपयोग कभी नहीं लौटाता है।

वहाँ तक इंतजार करना एक बेहतर तरीका है एक सेवा बाहरी IP (उर्फ LoadBalancer प्रवेश आईपी) सेट या सेट करने में विफल रहा है?

उत्तर

1

वास्तव में "सेट करने में विफल" स्थिति नहीं है क्योंकि हम इसे हमेशा के लिए पुनः प्रयास करेंगे। एक विफलता बादल प्रदाता या एक कोटा मुद्दा यह है कि घंटों या दिनों के, या चीजों के किसी भी संख्या के पाठ्यक्रम पर हल किया जाता है में एक क्षणिक त्रुटि हो सकता है। एकमात्र विफलता "आप कब तक प्रतीक्षा करने के इच्छुक हैं?" - जो केवल आप ही जान सकते हैं।

क्योंकि यह समाप्त होता है मनमाने ढंग से जटिल जा रहा है और आप सिर्फ इतना है कि कोडिंग कोई वास्तविक भाषा में बेहतर बंद कर रहे हैं हम आदेश एक सामान्य "अभिव्यक्ति के लिए प्रतीक्षा" नहीं है। ऊपर बैश पाश Ergo। हम 'घड़ी' कमांड के बारे में बेहतर कर सकते हैं, लेकिन यह अभी भी अंत में एक टाइमआउट है।

+0

क्या तैयार या असफल होने तक एक्स सेक के लिए प्रतीक्षा की तरह हो सकता है? – Wernight

+0

"असफल" का क्या अर्थ है? कि समग्र प्रणाली कोशिश करना बंद कर देगा? क्यूं कर? क्या यह सेवा को असफल के रूप में चिह्नित करना चाहिए? मैं स्पष्ट नहीं हूं कि आप क्या करने की कोशिश कर रहे हैं - क्या यह नहीं है कि आप नहीं जानते कि पर्यावरण वास्तव में एलबी का समर्थन करता है या नहीं? या आप क्लाउड प्रदाता विफल होने की उम्मीद करते हैं? भले ही - आप यह पहले से ही करने के लिए एक रास्ता है, तो आप सिर्फ पाशन पसंद नहीं है :) –

+0

असफल बाहर निकलने के 1 अर्थ है कि यदि कोई बाहरी आईपी एक्स सेकंड के भीतर सौंपा गया है। हां, मैं तैनात करने के लिए एक स्क्रिप्ट बनाना पसंद नहीं करता हूं। संभव के रूप में गंभीर नुकसान का कारण के रूप में परियोजना प्रति एक स्क्रिप्ट एक बहुत अधिक एक आम स्क्रिप्ट/सभी Kuberentes परियोजनाओं के लिए सुविधा की तुलना में कीड़े होने की संभावना है मेरी स्क्रिप्ट में बग से बचने के लिए तैनाती के रूप में सरल होना चाहिए। – Wernight

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