2015-01-22 31 views
69

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

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

+1

क्यों विवरण के बिना downvote: यह कोड/प्रोग्रामिंग से संबंधित है, शोध से पता चलता है, और एक शिकार नहीं है। – smeeb

+1

डाउनवोट नहीं किया गया लेकिन मुझे लगता है कि यह कुछ हद तक "मेटा-आश" प्रश्न है और इसका उत्तर टैग विवरण में जाना चाहिए। – Filburt

+1

धन्यवाद @ फ़िलबर्ट (+1) - हालांकि टैग वर्तमान में "* कुबर्नेट्स कंटेनर क्लस्टर प्रबंधन * का एक खुला स्रोत कार्यान्वयन है" के साथ लिखे गए हैं, जिसका अर्थ यह नहीं है कि बाहरी ** बाहरी ** के रूप में मुझे कुछ भी **:)। इसके अलावा, मैं वास्तविक दुनिया की तलाश कर रहा हूं, क्यूबर्नेट्स को हल करने वाली विशिष्ट समस्याओं के लिए ठोस उपयोग के मामले।मुझे लगता है कि टैग विवरण में जो कुछ भी हो सकता है, और यदि यह हो सकता है, तो मैं उस व्यक्ति के हाथ को हिला देना चाहता हूं जो यह पता लगाता है कि यह कैसे करें! – smeeb

उत्तर

53

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

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

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

+2

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

+2

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

10

आप अपने Github page से पढ़ने के रूप में:

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

Kubernetes है:

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

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

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

क्लस्टर शीर्ष पर गणना संसाधनों जो की अपने कंटेनर बनाया जाता है कर रहे हैं: वहाँ अपनी वास्तुकला में कुछ महत्वपूर्ण अवधारणाओं हैं:

Kubernetes निम्नलिखित अवधारणाओं के साथ काम करता है। Kubernetes कहीं भी चला सकते हैं! विभिन्न सेवाओं के लिए निर्देशों के लिए आरंभ करना मार्गदर्शिका देखें।

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

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

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

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

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

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

+2

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

+0

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

+0

क्षमा करें मेरी उपरोक्त टिप्पणी में लिंक [यह होना चाहिए था] (http://kubernetes.io/gettingstarted/), वहां जाएं और नीचे स्क्रॉल करें और आप देखेंगे कि आप कोरोस के शीर्ष पर कुबेरनेट स्थापित कर सकते हैं। – smeeb

2

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

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

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

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

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