मैं क्या एरिक ने कहा करने के लिए जोड़ सकते हैं और यह थोड़ा उत्परिवर्तित करना चाहते
इस मुद्दे देखें।
कुबर्नेट्स 1.1 "निपटान अवधि" के दौरान हमारे पास एक प्राप्तियां थीं कि वास्तव में resolv.conf और रिज़ॉल्यूवर व्यवहार जैसी चीजों के लिए चश्मे नहीं हैं। विभिन्न रिज़ॉल्यूवर पुस्तकालय अलग-अलग चीजें करते हैं, और इससे हमारे उपयोगकर्ताओं के लिए दर्द होता है।
विशेष रूप से, कुछ सामान्य संकल्प मानते हैं कि सभी nameserver
एस कवक हैं और यदि आपके पास नेमसर्वर थे जो DNS नामस्थान के विभिन्न हिस्सों को संभाले थे। हमने निर्णय लिया कि क्यूब 1.2 के लिए हम कंटेनरों में एकाधिक nameserver
लाइनों को पास नहीं करेंगे। इसके बजाए, हम केवल क्यूब-डीएनएस सर्वर पास करते हैं, जो cluster.local
प्रश्नों को संभालता है और किसी अन्य प्रश्न को "अपस्ट्रीम" नेमसर्वर को आगे बढ़ाता है।
हम कैसे जानते हैं कि "अपस्ट्रीम" क्या है? हम नोड के nameservers
का उपयोग करते हैं। एक प्रति-पॉड डीएनएस नीति क्षेत्र है जो इस विकल्प को नियंत्रित करता है। शुद्ध परिणाम यह है कि कंटेनर resolv.conf में एक nameserver
देखते हैं, जो हमारे पास है, और वह नेमसर्वर पूरे DNS नेमस्पेस को संभालता है।
इसका व्यावहारिक अर्थ यह है कि आपके लिए अपने नेमसर्वर को इंजेक्ट करने के लिए कोई शानदार हुक नहीं है। आप अपने खुद के DNS सर्वर को इंगित करने के लिए --cluster-dns
ध्वज को क्यूबलेट में बदल सकते हैं, जो तब क्यूब-डीएनएस को आगे बढ़ाएगा, जो तब "अपस्ट्रीम" तक आगे बढ़ेगा। समस्या यह है कि जीकेई वास्तव में इस तरह से बदलते झंडे का समर्थन नहीं करता है। अगर/जब नोड अद्यतन किया जाता है, तो ध्वज डिफ़ॉल्ट के पक्ष में गायब हो जाएगा।
संभावित समाधान:
kubelets एक में क्लस्टर config से अपने झंडे पढ़ा है। यह पहले से ही रिकॉर्ड की योजना है, लेकिन v1.2
है क्यूब-डीएनएस एक झंडा लेते हैं जो दर्शाता है कि "अपस्ट्रीम" क्या है। क्यूब-डीएनएस एक "क्लस्टर एडन" है और जैसा कि अंत उपयोगकर्ताओं द्वारा वास्तव में अनुकूल नहीं है (हम इसे आपके क्लस्टर के साथ अपडेट करेंगे और आपके परिवर्तन खो देंगे)।
क्या क्यूब-डीएनएस इन-क्लस्टर कॉन्फ़िगरेशन से अपने झंडे पढ़ते हैं, और एक झंडा लेते हैं जो "अपस्ट्रीम" है। यह एक व्यावहारिक विचार है, लेकिन शायद v1.2 (बहुत देर हो चुकी) के लिए नहीं। यह इसे v1.2.x में पैच करना संभव हो सकता है लेकिन यह वास्तव में एक बगफिक्स नहीं है, यह एक विशेषता है।
प्रत्येक नोड पर resolv.conf में अपना स्वयं का DNS सर्वर प्राप्त करें ताकि क्यूब-डीएनएस आपको अपस्ट्रीम के रूप में उपयोग कर सकें। मुझे नहीं लगता कि जीकेई के पास इसे कॉन्फ़िगर करने का एक तरीका है जो नोड अपग्रेड पर भी खो नहीं जाएगा। आप एक नियंत्रक लिख सकते हैं जो समय-समय पर वीएम को एसएसएच किया गया था और उसे लिखा था, और बाद में सहीता के लिए अपने क्यूब-डीएनएस कंटेनर की जांच की। Blech।
मुझे लगता है कि सही जवाब क्लस्टर कॉन्फ़िगरेशन का उपयोग करना है ताकि कुबलेट या DNS (या दोनों) को सूचित किया जा सके। यदि आपको लगता है कि ये व्यावहारिक उत्तर हो सकते हैं (टाइमफ्रेम मुद्दों के बावजूद), तो यह बहुत अच्छा होगा अगर आपने चर्चा करने के लिए गिटहब मुद्दा खोला। इसे वहां और अधिक दृश्यता मिलेगी।
स्रोत
2016-03-04 20:11:48
हालांकि, हो सकता है कि आप अपनी सभी विरासत सेवा DNS रिकॉर्ड्स को Google क्लाउड DNS में कॉपी कर सकें। (Https://cloud.google.com/dns/what-is-cloud-dns)। इससे उन्हें आपके सभी जीसीपी परियोजना उदाहरणों और सभी जीकेई कंटेनर में हल करने योग्य बना दिया जाएगा। –
हां, लेकिन यदि ओपी एक आंतरिक डीएनएस का उपयोग करता है और सार्वजनिक डीएनएस रिकॉर्ड नहीं – nelasx