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 प्रवेश आईपी) सेट या सेट करने में विफल रहा है?
क्या तैयार या असफल होने तक एक्स सेक के लिए प्रतीक्षा की तरह हो सकता है? – Wernight
"असफल" का क्या अर्थ है? कि समग्र प्रणाली कोशिश करना बंद कर देगा? क्यूं कर? क्या यह सेवा को असफल के रूप में चिह्नित करना चाहिए? मैं स्पष्ट नहीं हूं कि आप क्या करने की कोशिश कर रहे हैं - क्या यह नहीं है कि आप नहीं जानते कि पर्यावरण वास्तव में एलबी का समर्थन करता है या नहीं? या आप क्लाउड प्रदाता विफल होने की उम्मीद करते हैं? भले ही - आप यह पहले से ही करने के लिए एक रास्ता है, तो आप सिर्फ पाशन पसंद नहीं है :) –
असफल बाहर निकलने के 1 अर्थ है कि यदि कोई बाहरी आईपी एक्स सेकंड के भीतर सौंपा गया है। हां, मैं तैनात करने के लिए एक स्क्रिप्ट बनाना पसंद नहीं करता हूं। संभव के रूप में गंभीर नुकसान का कारण के रूप में परियोजना प्रति एक स्क्रिप्ट एक बहुत अधिक एक आम स्क्रिप्ट/सभी Kuberentes परियोजनाओं के लिए सुविधा की तुलना में कीड़े होने की संभावना है मेरी स्क्रिप्ट में बग से बचने के लिए तैनाती के रूप में सरल होना चाहिए। – Wernight