10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

टीएल, डॉ: क्यूब-राउटर और क्यूब-ओवीएन को छोड़कर सभी सीएनआई वैसे ही काम करते हैं जैसे उन्हें करना चाहिए, केलिको, स्वचालित एमटीयू डिटेक्शन के अपवाद के साथ, सबसे अच्छा है।

मेरे पिछले चेकों का आलेख-अद्यतन (2018 и 2019), परीक्षण के समय मैं अगस्त 1.19 तक अद्यतन सीएनआई के साथ उबंटू 18.04 पर कुबेरनेट्स 2020 का उपयोग कर रहा हूं।

इससे पहले कि हम मेट्रिक्स में उतरें...

अप्रैल 2019 से नया क्या है?

  • अपने स्वयं के क्लस्टर पर परीक्षण कर सकते हैं: आप हमारे टूल का उपयोग करके अपने स्वयं के क्लस्टर पर परीक्षण चला सकते हैं कुबेरनेट्स नेटवर्क बेंचमार्क: KNB
  • नए सदस्य सामने आए हैं
  • नए परिदृश्य: वर्तमान जांच "पॉड-टू-पॉड" नेटवर्क प्रदर्शन परीक्षण चलाती है, और एक नई "पॉड-टू-सर्विस" स्क्रिप्ट जोड़ी गई है जो वास्तविक दुनिया की स्थितियों के करीब परीक्षण चलाती है। व्यवहार में, एपीआई के साथ आपका पॉड एक सेवा के रूप में आधार के साथ काम करता है, न कि पॉड आईपी पते के माध्यम से (बेशक हम दोनों परिदृश्यों के लिए टीसीपी और यूडीपी दोनों की जांच करते हैं)।
  • संसाधन की खपत: अब प्रत्येक परीक्षण की अपनी संसाधन तुलना होती है
  • एप्लिकेशन परीक्षण हटाना: हम अब HTTP, FTP और SCP परीक्षण नहीं करते हैं क्योंकि समुदाय और CNI अनुरक्षकों के साथ हमारे उपयोगी सहयोग ने CNI स्टार्टअप (पॉड के पहले कुछ सेकंड) में देरी के कारण TCP पर iperf परिणामों और कर्ल परिणामों के बीच एक अंतर की खोज की है स्टार्टअप, जो वास्तविक परिस्थितियों में विशिष्ट नहीं है)।
  • खुला स्रोत: सभी परीक्षण स्रोत (स्क्रिप्ट, वाईएमएल सेटिंग्स और मूल "कच्चा" डेटा) उपलब्ध हैं यहां

संदर्भ परीक्षण प्रोटोकॉल

प्रोटोकॉल का विस्तार से वर्णन किया गया है यहांकृपया ध्यान दें कि यह लेख डिफ़ॉल्ट कर्नेल के साथ Ubuntu 18.04 के बारे में है।

मूल्यांकन के लिए सीएनआई का चयन करना

इस परीक्षण का उद्देश्य एक yaml फ़ाइल के साथ कॉन्फ़िगर किए गए CNI की तुलना करना है (इसलिए, VPP और अन्य जैसी स्क्रिप्ट द्वारा स्थापित सभी को बाहर रखा गया है)।

तुलना के लिए हमारे चयनित सीएनआई:

  • एंट्रिया v.0.9.1
  • केलिको v3.16
  • नहर v3.16 (फलालैन नेटवर्क + केलिको नेटवर्क नीतियाँ)
  • सिलियम 1.8.2
  • फलालैन 0.12.0
  • क्यूब-राउटर नवीनतम (2020–08–25)
  • वीवनेट 2.7.0

सीएनआई के लिए एमटीयू को कॉन्फ़िगर करना

सबसे पहले, हम टीसीपी प्रदर्शन पर स्वचालित एमटीयू पहचान के प्रभाव की जांच करते हैं:

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

टीसीपी प्रदर्शन पर एमटीयू का प्रभाव

यूडीपी का उपयोग करते समय और भी बड़ा अंतर पाया जाता है:

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)
यूडीपी प्रदर्शन पर एमटीयू का प्रभाव

परीक्षणों में सामने आए विशाल प्रदर्शन प्रभाव को देखते हुए, हम सभी सीएनआई अनुरक्षकों को आशा पत्र भेजना चाहेंगे: कृपया सीएनआई में स्वचालित एमटीयू डिटेक्शन जोड़ें। आप बिल्ली के बच्चे, यूनिकॉर्न और यहां तक ​​कि सबसे प्यारे बच्चे को भी बचाएंगे: छोटा देवोप।

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

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)
साथ आए सीएनआई से मेरा छोटा सा अनुरोध...

सीएनआई परीक्षण: कच्चा डेटा

इस अनुभाग में, हम सीएनआई की तुलना सही एमटीयू (स्वचालित रूप से निर्धारित या मैन्युअल रूप से सेट) के साथ करेंगे। यहां मुख्य लक्ष्य कच्चे डेटा को ग्राफ़ में दिखाना है।

रंग किंवदंती:

  • ग्रे - नमूना (अर्थात् नंगा लोहा)
  • हरा - 9500 एमबीपीएस से ऊपर बैंडविड्थ
  • पीला - 9000 एमबीपीएस से ऊपर बैंडविड्थ
  • नारंगी - 8000 एमबीपीएस से ऊपर बैंडविड्थ
  • लाल - बैंडविड्थ 8000 एमबीपीएस से कम
  • नीला - तटस्थ (बैंडविड्थ से संबंधित नहीं)

नो-लोड संसाधन खपत

सबसे पहले, जब क्लस्टर "सो रहा हो" तो संसाधन खपत की जाँच करें।

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)
नो-लोड संसाधन खपत

पॉड-टू-पॉड

यह परिदृश्य मानता है कि क्लाइंट पॉड अपने आईपी पते का उपयोग करके सीधे सर्वर पॉड से जुड़ता है।

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)
पॉड-टू-पॉड परिदृश्य

टीसीपी

पॉड-टू-पॉड टीसीपी परिणाम और संबंधित संसाधन खपत:

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

यूडीपी

पॉड-टू-पॉड यूडीपी परिणाम और संबंधित संसाधन खपत:

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

पॉड-टू-सर्विस

यह अनुभाग वास्तविक उपयोग के मामलों के लिए प्रासंगिक है, क्लाइंट पॉड क्लस्टरआईपी सेवा के माध्यम से सर्वर पॉड से जुड़ता है।

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)
पॉड-टू-सर्विस स्क्रिप्ट

टीसीपी

पॉड-टू-सर्विस टीसीपी परिणाम और संबंधित संसाधन खपत:

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

यूडीपी

पॉड-टू-सर्विस यूडीपी परिणाम और संबंधित संसाधन खपत:

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

नेटवर्क नीति समर्थन

उपरोक्त सभी में, एकमात्र व्यक्ति जो राजनीति का समर्थन नहीं करता वह फ़्लानेल है। अन्य सभी इनबाउंड और आउटबाउंड सहित नेटवर्क नीतियों को सही ढंग से लागू करते हैं। अच्छा काम!

सीएनआई एन्क्रिप्शन

जाँचे गए सीएनआई में वे भी हैं जो पॉड्स के बीच नेटवर्क एक्सचेंज को एन्क्रिप्ट कर सकते हैं:

  • एंट्रिया IPsec का उपयोग कर रही है
  • केलिको वायरगार्ड का उपयोग कर रहा है
  • आईपीसेक का उपयोग करते हुए सिलियम
  • WeaveNet IPsec का उपयोग कर रहा है

क्षमता

चूँकि कम सीएनआई बचे हैं, आइए सभी परिदृश्यों को एक ग्राफ़ में रखें:

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

संसाधन उपभोग

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

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

यह सब एक साथ डालें

आइए सभी ग्राफ़ों को दोहराने का प्रयास करें, हमने यहां थोड़ी व्यक्तिपरकता का परिचय दिया है, वास्तविक मूल्यों को "vwry fast", "low", आदि शब्दों से प्रतिस्थापित किया है।

10जी नेटवर्क पर कुबेरनेट्स के लिए सीएनआई प्रदर्शन मूल्यांकन (अगस्त 2020)

निष्कर्ष और मेरे निष्कर्ष

यह थोड़ा व्यक्तिपरक है, क्योंकि मैं परिणामों की अपनी व्याख्या बता रहा हूं।

मुझे खुशी है कि नए सीएनआई सामने आए, एंट्रिया ने अच्छा प्रदर्शन किया, शुरुआती संस्करणों में भी कई कार्य लागू किए गए: स्वचालित एमटीयू पहचान, एन्क्रिप्शन और आसान इंस्टॉलेशन।

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

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

फ़्लानेल को छोड़कर सभी के पास नेटवर्क नीतियां हैं। यह बहुत संभव है कि वह कभी भी उनका समर्थन नहीं करेगा, क्योंकि लक्ष्य उबले हुए शलजम की तुलना में सरल है: जितना हल्का, उतना बेहतर।

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

अन्य बातों के अलावा, ध्यान दें कि सिलियम क्लस्टर नोड्स (और न केवल पॉड्स के बीच) के बीच ट्रैफ़िक को एन्क्रिप्ट कर सकता है, जो सार्वजनिक क्लस्टर नोड्स के लिए बहुत महत्वपूर्ण हो सकता है।

निष्कर्ष के रूप में, मैं निम्नलिखित उपयोग के मामलों का सुझाव देता हूं:

  • बहुत छोटे क्लस्टर के लिए CNI की आवश्यकता है या मुझे सुरक्षा की आवश्यकता नहीं है: के साथ काम फ़लालैन का, सबसे हल्का और सबसे स्थिर CNI (वह भी सबसे पुराने में से एक है, किंवदंती के अनुसार उसका आविष्कार होमो कुबेरनॉटस या होमो कॉन्टैटोरस द्वारा किया गया था). आपको सबसे सरल प्रोजेक्ट में भी रुचि हो सकती है K3s, जाँच करना!
  • नियमित क्लस्टर के लिए सीएनआई की आवश्यकता है: कैलिकौ - आपकी पसंद, लेकिन यदि आवश्यक हो तो एमटीयू को कॉन्फ़िगर करना न भूलें। आप आसानी से और स्वाभाविक रूप से नेटवर्क नीतियों के साथ खेल सकते हैं, एन्क्रिप्शन चालू और बंद कर सकते हैं, आदि।
  • (बहुत) बड़े पैमाने के क्लस्टर के लिए सीएनआई की आवश्यकता है: ठीक है, परीक्षण बड़े समूहों के व्यवहार को नहीं दिखाता है, मुझे परीक्षण करने में खुशी होगी, लेकिन हमारे पास 10Gbps कनेक्शन वाले सैकड़ों सर्वर नहीं हैं। इसलिए सबसे अच्छा विकल्प अपने नोड्स पर एक संशोधित परीक्षण चलाना है, कम से कम कैलिको और सिलियम के साथ।

स्रोत: www.habr.com

एक टिप्पणी जोड़ें