कुबेरनेट्स वास्तव में क्या करता है? [बन्द है]


134

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

तो क्या कुबेरनेट्स, वास्तव में , और कुछ विशिष्ट समस्याएं हैं जो इसे हल करती हैं?


यह देखते हुए कि सभी डॉक-वर्ल्ड प्रोजेक्ट्स (kubernetes / fleet / swarm / etc) को यह समझाने में कठिनाई होती है कि वे क्या करते हैं और क्या अलग करते हैं, मुझे लगता है कि कुछ इच्छा-योग्य प्रश्न यह है कि हम सभी उपयोगकर्ताओं को प्रदान कर सकते हैं ... पूछता है "बेड़े और कुबेरनेट्स में क्या अंतर है" और जवाब है "आप बेड़े को कुबेरनेट्स लॉन्च करने के लिए उपयोग कर सकते हैं"। ओह। ;-)
टॉरस्ट ब्रोंगर

3
मुझे लगता है कि यह पूरी तरह से वैध सवाल है और डोको में कुछ छोटी-छोटी बातों को इंगित करता है। बहुत व्यापक होने के नाते इसे बंद करना एक असंतोष है। मेरे लिए सबसे अच्छा तरीका, बस k8s कोडबेस डाउनलोड करना था और उदाहरण के लिए वहां जाकर देखना था कि पॉड क्या है। इससे मुझे बहुत मदद मिली।
बीजर

जवाबों:


113

कुबेरनेट्स का उद्देश्य मशीनों के बेड़े में अपने एप्लिकेशन को व्यवस्थित और शेड्यूल करना आसान बनाना है। उच्च स्तर पर यह आपके क्लस्टर के लिए एक ऑपरेटिंग सिस्टम है।

मूल रूप से, यह आपको इस बारे में चिंता करने की अनुमति नहीं देता है कि प्रत्येक एप्लिकेशन में आपके विशिष्ट उपकरण में कौन सी विशिष्ट मशीन है। इसके अतिरिक्त यह स्वास्थ्य जांच के लिए जेनेरिक आदिम प्रदान करता है और इन मशीनों में आपके एप्लिकेशन की नकल करता है, साथ ही आपके एप्लिकेशन को माइक्रो-सेवाओं में वायरिंग करने के लिए सेवाएं प्रदान करता है ताकि आपके एप्लिकेशन की प्रत्येक परत अन्य परतों से डिकॉउंट हो जाए ताकि आप उन्हें स्केल / अपडेट / मेंटेन कर सकें। स्वतंत्र रूप से।

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


3
धन्यवाद @brendan (+1) - आपका उत्तर निश्चित रूप से मदद करता है। एक अनुवर्ती प्रश्न हालांकि: यह क्या अपाचे मेसोस नहीं करता है? क्या कुबेरनेट्स और मेसोस एक-दूसरे के प्रतिस्पर्धी हैं? यदि नहीं, तो वे एक दूसरे के साथ संगीत कार्यक्रम में इस्तेमाल किया जा सकता है (और यदि हां, तो कैसे)? एक बार फिर धन्यवाद!
सुबह

2
@smeeb मेसोस और कुबेरनेट एक दूसरे के पूरक हैं (उत्तरार्द्ध को मेसोस ढांचे के रूप में समर्थित किया गया है)। मेसोस अधिक परिष्कृत संसाधन प्रबंधन प्रदान करता है। दूसरे शब्दों में, कुबेरनेट्स मेसोस को यह तय करने देता है कि कौन सी मेजबान का उपयोग किया जाता है, उपलब्ध क्षमता के आधार पर। मेसोस अन्य रूपरेखाओं का समर्थन करता है। यदि आप डॉक्स पढ़ते हैं, तो आप देखेंगे कि मैराथन एक मेसोस प्रबंधित सर्वर क्लस्टर पर कंटेनर लॉन्च करने का एक और तरीका है।
मार्क ओ'कॉनर

18

जैसा कि आप इसके जीथूब पृष्ठ से पढ़ते हैं :

Kubernetes कई मेजबानों पर कंटेनरीकृत अनुप्रयोगों के प्रबंधन के लिए एक खुला स्रोत प्रणाली है, जो तैनाती, रखरखाव और अनुप्रयोगों के स्केलिंग के लिए बुनियादी तंत्र प्रदान करता है।

कुबेरनेट्स है:

lean: lightweight, simple, accessible
portable: public, private, hybrid, multi cloud
extensible: modular, pluggable, hookable, composable
self-healing: auto-placement, auto-restart, auto-replication

कुबेरनेट्स, समुदाय से सर्वोत्तम-नस्ल के विचारों और प्रथाओं के साथ मिलकर, पैमाने पर Google के उत्पादन वर्कलोड चलाने का एक दशक और अनुभव का एक आधा हिस्सा बनाता है।

मेरे लिए कुबेरनेट्स Google का एक कंटेनर ऑर्केस्ट्रेशन टूल है। इसके डिजाइन के कारण आप किसी भी कंटेनर इंजन के साथ संगतता को लागू कर सकते हैं, लेकिन मुझे लगता है कि अब यह डॉकर तक सीमित है। इसकी वास्तुकला में कुछ महत्वपूर्ण अवधारणाएँ हैं:

कुबेरनेट्स निम्नलिखित अवधारणाओं के साथ काम करता है:

क्लस्टर आपके शीर्ष पर बनाए गए संसाधन संसाधन हैं, जिनसे आपके कंटेनर बनाए जाते हैं। Kubernetes कहीं भी चल सकता है! विभिन्न सेवाओं के लिए निर्देशों के लिए प्रारंभ करना मार्गदर्शिकाएँ देखें।

पॉड्स साझा संस्करणों के साथ डॉक कंटेनर के एक कोलोकेटेड समूह हैं। वे सबसे छोटी तैनाती वाली इकाइयाँ हैं जिन्हें कुबेरनेट्स के साथ बनाया, अनुसूचित और प्रबंधित किया जा सकता है। पॉड्स को व्यक्तिगत रूप से बनाया जा सकता है, लेकिन यह अनुशंसा की जाती है कि आप एकल पॉड बनाते हुए भी प्रतिकृति नियंत्रक का उपयोग करें। फली के बारे में अधिक।

प्रतिकृति नियंत्रक फली के जीवनचक्र का प्रबंधन करते हैं। वे यह सुनिश्चित करते हैं कि फली की एक निर्दिष्ट संख्या किसी भी समय चल रही है, आवश्यकतानुसार फली बनाकर या मारकर। प्रतिकृति नियंत्रकों के बारे में अधिक।

फली के सेट के लिए सेवाएं एकल, स्थिर नाम और पता प्रदान करती हैं। वे मूल लोड बैलेंसर्स के रूप में कार्य करते हैं। सेवाओं के बारे में अधिक।

लेबल का उपयोग कुंजी: मूल्य जोड़े के आधार पर वस्तुओं के समूहों को व्यवस्थित करने और चुनने के लिए किया जाता है। लेबल के बारे में अधिक।

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

यदि आप कोरोस के बारे में कुछ जानते हैं, तो यह एक बहुत ही समान समाधान है लेकिन Google से। Algo Kubernetes का Google क्लाउड इंजन के साथ अच्छा एकीकरण है।


2
धन्यवाद @jcortejoso (+1) - हालांकि मेरे कुछ फॉलोअप सवाल हैं, अगर आपको कोई आपत्ति नहीं है: (1) आप कहते हैं कि कुबेरनेट्स कोरओएस के समान है, लेकिन Google से। इसका तात्पर्य है कि कुबेरनेट्स और कोरओएस एक ही समस्या को हल करते हैं। लेकिन [कुबेरनेट्स की अपनी वेबसाइट] () से, यह कहता है कि आप कुबेरनेट्स को कोरओएस पर स्थापित कर सकते हैं । तो यह कौन है? क्या कुबेरनेट्स को कोरओएस के समान है, या कुबेरनेट्स कोरओएस पर चलते हैं और एक विशिष्ट समस्या को हल करते हैं?
स्माइब

1
इसके अलावा (2) मैं अभी भी कुबेरनेट्स के "ऑर्केस्ट्रेशन" में मूल्य नहीं देख रहा हूं। आप कहते हैं कि आप कुबेरनेट्स का उपयोग कंटेनरों के एक समूह को परिभाषित करने के लिए कर सकते हैं जो एक सेवा प्रदान करता है, जिसने मुझे दो अलग-अलग चीजों को आश्चर्यचकित किया है: (2a) मैं इस प्रकार के ऐप परत पर क्लस्टरिंग नहीं कर सका, और अपने ऐप को पीछे छोड़ दिया नग्नेक्स लोड बैलेंसर? और (2 बी) क्या यह सब "ऑर्केस्ट्रेशन" है? मेरे लिए, फिर से, यह लोड संतुलन की तरह लगता है जिसे आसानी से ऐप लेयर में हासिल किया जा सकता है। विचार? अद्भुत उत्तर के लिए फिर से धन्यवाद!
स्माइब

1
यदि कुबेरनेट्स "हल्का" है, तो मुझे आश्चर्य है कि वसा समाधान क्या होगा।
टॉर्स्टन ब्रॉन्गर

@smeeb मैं nginx से परिचित नहीं हूँ (इसलिए मेरी भोली को माफ करना), लेकिन मुझे नहीं लगता कि nginx एक सर्वर को पुनरारंभ करेगा जो दुर्घटनाग्रस्त हो गया है; और यदि कोई मशीन (या संपूर्ण डेटासेंटर) नीचे जाती है, तो nginx आपके ऐप को एक अलग मशीन पर पुनरारंभ नहीं करेगा। कुबेरनेट्स यह सुनिश्चित करेंगे कि आप हमेशा कहीं न कहीं "पॉड्स" की संख्या को चालू रखें, और यह वास्तव में मायने नहीं रखता कि कहां या कैसे।
किग्रीनक सिप

10

कुबेरनेट्स सर्विस एपीआई के रूप में इन्फ्रास्ट्रक्चर के समान कार्यक्षमता प्रदान करता है, लेकिन आभासी मशीनों के बजाय गतिशील रूप से अनुसूचित कंटेनरों के उद्देश्य से, और प्लेटफॉर्म के रूप में सेवा प्रणालियों के रूप में, लेकिन अधिक लचीलेपन के साथ:

  • बढ़ते भंडारण प्रणाली,
  • रहस्य वितरित करना,
  • आवेदन स्वास्थ्य जाँच,
  • आवेदन उदाहरणों की नकल करते हुए,
  • क्षैतिज ऑटो-स्केलिंग,
  • नामकरण और खोज,
  • भार संतुलन,
  • रोलिंग अद्यतन,
  • संसाधन की निगरानी,
  • प्रवेश और अंतर्ग्रहण,
  • आत्मनिरीक्षण और डिबगिंग के लिए समर्थन, और
  • पहचान और प्राधिकरण।

यदि आप पहले से ही सेवा की खोज, गुप्त वितरण, लोड संतुलन, निगरानी आदि के लिए अन्य तंत्रों का उपयोग करते हैं, तो निश्चित रूप से आप उनका उपयोग करना जारी रख सकते हैं, लेकिन हमारा लक्ष्य मौजूदा IaaS और PaS प्रणालियों से कुबेरनेट्स के लिए संक्रमण प्रदान करना आसान बनाना है। कार्यक्षमता।

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/#why-do-i-need-kubernetes-and-what-can-it-do

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.