ڪبرنيٽس ڪم ڪندڙ نوڊس: ڪيترائي ننڍا يا ڪيترائي وڏا؟

ڪبرنيٽس ڪم ڪندڙ نوڊس: ڪيترائي ننڍا يا ڪيترائي وڏا؟
جڏهن ڪوبرنيٽس ڪلستر ٺاهي، سوال پيدا ٿي سگهي ٿو: ڪيترا ڪم ڪندڙ نوڊس کي ترتيب ڏيڻ ۽ ڪهڙي قسم جي؟ آن پريميس ڪلستر لاءِ ڇا بهتر آهي: ڪيترائي طاقتور سرور خريد ڪريو يا توهان جي ڊيٽا سينٽر ۾ درجنين پراڻيون مشينون استعمال ڪريو؟ ڇا اهو بهتر آهي ته ڪلائوڊ ۾ اٺ سنگل-ڪور يا ٻه کواڊ-ڪور مثال وٺو؟

انهن سوالن جا جواب هن مضمون ۾ آهن. ڊينيل ويبل، سافٽ ويئر انجنيئر ۽ استاد Learnk8s تعليمي منصوبي جو حڪم جي ترجمي ۾ Mail.ru کان Kubernetes aaS.

ڪلستر جي گنجائش

عام طور تي، هڪ Kubernetes ڪلستر هڪ وڏي "سپرنوڊ" جي طور تي سمجهي سگهجي ٿو. ان جي ڪل ڪمپيوٽنگ پاور ان جي سڀني جزن جي نوڊس جي طاقتن جو مجموعو آهي.

توهان جي گهربل ڪلستر جي گنجائش جي حدف حاصل ڪرڻ لاء ڪيترائي طريقا آهن. مثال طور، اسان کي 8 پروسيسر ڪور ۽ 32 GB ريم جي ڪل گنجائش سان ڪلستر جي ضرورت آهي ڇو ته ايپليڪيشنن جو هڪ سيٽ تمام گهڻن وسيلن جي ضرورت آهي. پوءِ توهان انسٽال ڪري سگهو ٿا ٻه نوڊس 16 GB ميموري سان يا چار نوڊس 8 GB ميموري سان، ٻه ڪواڊ ڪور پروسيسر يا چار ڊبل ڪور وارا.

هتي هڪ ڪلستر ٺاهڻ لاء صرف ٻه ممڪن طريقا آهن:

ڪبرنيٽس ڪم ڪندڙ نوڊس: ڪيترائي ننڍا يا ڪيترائي وڏا؟
ٻئي آپشن هڪ ئي ظرفيت سان هڪ ڪلستر پيدا ڪن ٿا، پر هيٺئين ترتيب ۾ چار ننڍا نوڊس آهن ۽ مٿين ترتيب ۾ ٻه وڏا نوڊس آهن.

ڪهڙو اختيار بهتر آهي؟

هن سوال جو جواب ڏيڻ لاء، اچو ته ٻنهي اختيارن جي فائدن کي ڏسو. اسان انهن کي هڪ جدول ۾ اختصار ڪيو آهي.

ڪيترائي وڏا نوڊس

ڪيترائي ننڍا نوڊس

آسان ڪلستر انتظام (جيڪڏهن اهو بنياد تي آهي)

هموار خودڪار اسڪيلنگ

سستو (جيڪڏهن بنياد تي)

قيمت ٿورو مختلف آهي (بادل ۾)

وسيلا-گھڻيون ايپليڪيشنون هلائي سگھن ٿيون

مڪمل نقل

وسيلن کي وڌيڪ ڪارائتو استعمال ڪيو ويندو آهي (سسٽم ڊيمن تي گهٽ اوور هيڊ
اعلي ڪلستر غلطي رواداري

مهرباني ڪري نوٽ ڪريو ته اسان صرف ڪم ڪندڙ نوڊس بابت ڳالهائي رهيا آهيون. مکيه نوڊس جو تعداد ۽ سائيز چونڊڻ هڪ مڪمل طور تي مختلف موضوع آهي.

تنهن ڪري، اچو ته ٽيبل مان هر نقطي تي وڌيڪ تفصيل سان بحث ڪريو.

پهريون اختيار: ڪيترائي وڏا نوڊس

سڀ کان وڌيڪ انتهائي اختيار سڄي ڪلستر جي گنجائش لاء هڪ ڪم ڪندڙ نوڊ آهي. مٿي ڏنل مثال ۾، هي هڪ واحد ڪم ڪندڙ نوڊ هوندو 16 سي پي يو ڪور ۽ 16 GB جي رام سان.

Плюсы

پلس نمبر 1. آسان انتظام
اهو تمام آسان آهي چند مشينن کي منظم ڪرڻ لاء هڪ سڄي جهاز جي ڀيٽ ۾. اپڊيٽس ۽ فيڪسز کي رول آئوٽ ڪرڻ لاءِ اهو تيز آهي، ۽ ان کي هم وقت سازي ڪرڻ آسان آهي. مطلق تعداد ۾ ناڪامين جو تعداد پڻ گهٽ آهي.

مهرباني ڪري نوٽ ڪريو ته مٿيون سڀ شيون توهان جي هارڊويئر تي، توهان جي سرورز تي لاڳو ٿين ٿيون، ۽ نه ڪلائوڊ مثالن تي.

بادل ۾ صورتحال مختلف آهي. اتي، انتظام بادل سروس فراهم ڪندڙ طرفان سنڀاليو ويندو آهي. اهڙيء طرح، بادل ۾ ڏهن نوڊس کي منظم ڪرڻ هڪ نوڊ کي منظم ڪرڻ کان گهڻو مختلف ناهي.

بادل ۾ پوڊ جي وچ ۾ ٽرئفڪ جي رستي ۽ لوڊ ورڇ خودڪار طريقي سان انجام ڏنو: انٽرنيٽ مان ايندڙ ٽرئفڪ کي مين لوڊ بيلنس ڏانهن موڪليو ويو آهي، جيڪو ٽرئفڪ کي هڪ نوڊس جي بندرگاهن ڏانهن موڪلي ٿو (نوڊ پورٽ سروس هر ڪلستر نوڊ ۾ 30000-32767 جي حد ۾ بندرگاهن کي سيٽ ڪري ٿو). قاعدا مقرر ڪيا ويا kube-proxy ٽريفڪ کي نوڊ کان پوڊ ڏانهن منتقل ڪري ٿو. ھتي اھو آھي جيڪو ٻن نوڊس تي ڏھن پوڊن لاءِ نظر اچي ٿو:

ڪبرنيٽس ڪم ڪندڙ نوڊس: ڪيترائي ننڍا يا ڪيترائي وڏا؟
پرو #2: گھٽ قيمت في نوڊ
هڪ طاقتور ڪار وڌيڪ مهانگو آهي، پر قيمت ۾ اضافو ضروري نه آهي لڪير. ٻين لفظن ۾، 10 GB ميموري سان هڪ ڏهه-ڪور سرور عام طور تي ڏهه سنگل-ڪور سرورن کان سستو هوندو آهي ساڳئي مقدار جي ميموري سان.

پر ياد رهي ته هي قاعدو عام طور تي ڪلائوڊ سروسز ۾ ڪم نٿو ڪري. سڀني وڏن بادل فراهم ڪندڙن جي موجوده قيمتن جي اسڪيمن ۾، قيمتون ظرفيت سان قطار ۾ وڌندا آهن.

ان ڪري، بادل ۾ توهان عام طور تي وڌيڪ طاقتور سرور تي محفوظ نٿا ڪري سگهو.

پرو #3: توهان هلائي سگهو ٿا وسيلن جي گنجائش واري ايپليڪيشن
ڪجهه ايپليڪيشنن کي ڪلستر ۾ طاقتور سرور جي ضرورت هوندي آهي. مثال طور، جيڪڏهن مشين لرننگ سسٽم کي 8 GB ميموري جي ضرورت آهي، ته توهان ان کي 1 GB نوڊس تي نه هلائي سگهندا، پر صرف گهٽ ۾ گهٽ هڪ وڏي ورڪر نوڊ سان.

Минусы

نقصان نمبر 1. ڪيترائي پوڊ في نوڊ
جيڪڏهن ساڳيو ڪم ٿورن نوڊس تي ڪيو وڃي ته پوءِ انهن مان هر هڪ کي قدرتي طور وڌيڪ پوڊس هوندا.

اهو هڪ مسئلو ٿي سگهي ٿو.

ان جو سبب اهو آهي ته هر ماڊل ڪنٽينر رن ٽائم (مثال طور ڊاڪر)، انهي سان گڏ ڪبيليٽ ۽ سي ايڊوائزر ڏانهن ڪجهه اوور هيڊ متعارف ڪرايو آهي.

مثال طور، ڪوبلٽ باقاعدگي سان سڀني ڪنٽينرز جي تحقيق ڪري ٿو نوڊ تي بقا لاءِ- جيترا وڌيڪ ڪنٽينر، اوترو وڌيڪ ڪم ڪيوبلٽ کي ڪرڻو پوندو.

CAdvisor هڪ نوڊ تي سڀني ڪنٽينرز لاءِ وسيلن جي استعمال جا انگ اکر گڏ ڪري ٿو، ۽ ڪوبيليٽ باقاعدگي سان هن معلومات بابت سوال ڪري ٿو ۽ ان کي API ذريعي مهيا ڪري ٿو. ٻيهر، وڌيڪ ڪنٽينرز جو مطلب آهي وڌيڪ ڪم ٻنهي لاءِ سي ايڊوائزر ۽ ڪوبيليٽ.

جيڪڏهن ماڊلز جو تعداد وڌي ٿو، اهو سسٽم کي سست ڪري سگهي ٿو ۽ ان جي اعتبار کي به گهٽائي سگھي ٿو.

ڪبرنيٽس ڪم ڪندڙ نوڊس: ڪيترائي ننڍا يا ڪيترائي وڏا؟
Kubernetes مخزن ۾ ڪجھ شڪايت ڪئيجيڪي نوڊس ريڊي/ ناٽ ريڊي اسٽيٽس جي وچ ۾ ٽپو ڏين ٿا ڇاڪاڻ ته نوڊ تي سڀني ڪنٽينرز جي باقاعده ڪبيليٽ چيڪ تمام گهڻو وقت وٺن ٿا.
هن سبب لاء Kubernetes هر نوڊ کي 110 پوڊ کان وڌيڪ نه رکڻ جي صلاح ڏني وئي آهي. نوڊ جي ڪارڪردگي تي مدار رکندي، توهان هر نوڊ تي وڌيڪ پوڊ هلائي سگهو ٿا، پر اهو پيش ڪرڻ ڏکيو آهي ته ڇا مسئلو ٿيندو يا سڀ ڪجهه ٺيڪ ڪم ڪندو. اهو اڳ ۾ ڪم جي جاچ ڪرڻ جي قابل آهي.

نقصان نمبر 2. نقل تي حد
تمام ٿورا نوڊس ايپليڪيشن نقل جي اثرائتي حد تائين محدود ڪن ٿا. مثال طور، جيڪڏهن توهان وٽ پنج نقلن سان گڏ هڪ اعلي دستيابي ايپليڪيشن آهي پر صرف ٻه نوڊس، ته پوءِ ايپليڪيشن جي موثر نقل جي درجي کي گهٽجي ٻن تائين پهچايو ويندو.

پنج ريپليڪس صرف ٻن نوڊس ۾ ورهائي سگھجن ٿا، ۽ جيڪڏھن انھن مان ھڪڙو ناڪام ٿئي ٿو، اھو ھڪڙي وقت ۾ گھڻن نقلن کي گھٽائي ٿو.

جيڪڏهن توهان وٽ پنج نوڊس يا وڌيڪ آهن، هر نقل هڪ الڳ نوڊ تي هلندي، ۽ هڪ نوڊ جي ناڪامي وڌ ۾ وڌ هڪ نقل کي هٽائي ڇڏيندو.

اهڙيء طرح، اعلي دستيابي جي گهرج جي ضرورت هوندي ڪلستر ۾ نوڊس جي هڪ خاص گهٽ ۾ گهٽ تعداد.

نقصان نمبر 3. ناڪامي جا بدترين نتيجا
نوڊس جي هڪ ننڍڙي تعداد سان، هر ناڪامي جا وڌيڪ سنگين نتيجا آهن. مثال طور، جيڪڏهن توهان وٽ صرف ٻه نوڊس آهن ۽ انهن مان هڪ ناڪام ٿئي ٿو، توهان جا اڌ ماڊل فوري طور تي غائب ٿي ويندا آهن.

يقينن، ڪبرنيٽس ڪم لوڊ کي ناڪام نوڊ کان ٻين ڏانهن منتقل ڪندو. پر جيڪڏهن انهن مان ڪي ٿورا آهن، ته پوءِ شايد ڪافي مفت گنجائش نه هجي. نتيجي طور، توهان جون ڪجهه ايپليڪيشنون دستياب نه هونديون جيستائين توهان ناڪام ٿيل نوڊ نه آڻيندا.

ان ڪري، وڌيڪ نوڊس، هارڊويئر ناڪامي جو اثر گهٽ.

نقصان #4: وڌيڪ خودڪار اسڪيلنگ مرحلا
ڪبرنيٽس وٽ ڪلسٽر آٽو اسڪيلنگ سسٽم آهي ڪلائوڊ انفراسٽرڪچر لاءِ، جيڪو توهان کي توهان جي موجوده ضرورتن جي بنياد تي نوڊس پاڻمرادو شامل ڪرڻ يا ختم ڪرڻ جي اجازت ڏئي ٿو. وڏن نوڊس سان، آٽو اسڪيلنگ وڌيڪ اوچتو ۽ ڇڪيل ٿي ويندي آهي. مثال طور، ٻن نوڊس تي، اضافي نوڊ شامل ڪرڻ سان فوري طور تي ڪلستر جي گنجائش 50٪ وڌائي ويندي. ۽ توهان کي انهن وسيلن جي قيمت ادا ڪرڻي پوندي، جيتوڻيڪ توهان کي انهن جي ضرورت ناهي.

اهڙيء طرح، جيڪڏهن توهان خودڪار ڪلستر اسڪيلنگ استعمال ڪرڻ جو ارادو ڪيو، نوڊس ننڍا، وڌيڪ لچڪدار ۽ قيمتي اثرائتي اسڪيلنگ توهان حاصل ڪندا.

هاڻي اچو ته هڪ وڏي تعداد ۾ ننڍن نوڊس جي فائدن ۽ نقصانن کي ڏسو.

ٻيو اختيار: ڪيترائي ننڍا نوڊس

هن طريقي جا فائدا بنيادي طور تي مخالف اختيار جي نقصانن مان نڪرندا آهن ڪيترن ئي وڏن نوڊس سان.

Плюсы

پرو #1: ناڪامي جو گهٽ اثر
وڌيڪ نوڊس، هر نوڊ تي گهٽ پوڊ. مثال طور، جيڪڏهن توهان وٽ هڪ سئو ماڊل في ڏهه نوڊس آهن، ته هر نوڊ ۾ سراسري طور ڏهه ماڊل هوندا.

تنهن ڪري جيڪڏهن نوڊس مان هڪ ناڪام ٿئي، توهان صرف ڪم لوڊ جو 10٪ وڃائي ڇڏيو. امڪان اهو آهي ته نقلن جو صرف هڪ ننڍڙو تعداد متاثر ٿيندو ۽ مجموعي طور تي ايپليڪيشن هلندي رهندي.

اضافي طور تي، باقي نوڊس وٽ ناڪامي نوڊ جي ڪم لوڊ کي سنڀالڻ لاءِ ڪافي مفت وسيلا هوندا، تنهن ڪري ڪبرنيٽس آزاديءَ سان پوڊس کي ٻيهر شيڊول ڪري سگهن ٿا ۽ توهان جون ايپليڪيشنون نسبتا جلدي هڪ فنڪشنل حالت ڏانهن موٽنديون.

پرو #2: سٺي نقل
جيڪڏهن ڪافي نوڊس آهن، ڪبرنيٽس شيڊولر مختلف نوڊس کي سڀني نقلن کي تفويض ڪري سگھن ٿا. اهو طريقو، جيڪڏهن ڪو نوڊ ناڪام ٿئي ٿو، صرف هڪ نقل متاثر ٿيندو ۽ ايپليڪيشن موجود رهندي.

Минусы

نقصان نمبر 1. ڪنٽرول ڪرڻ ڏکيو
نوڊس جي وڏي تعداد کي منظم ڪرڻ وڌيڪ ڏکيو آهي. مثال طور، هر Kubernetes نوڊ کي ٻين سڀني سان رابطو ڪرڻ گهرجي، اهو آهي، ڪنيڪشن جو تعداد چوٿين طور تي وڌي ٿو، ۽ انهن سڀني ڪنيڪشن کي ٽريڪ ڪرڻ جي ضرورت آهي.

ڪبرنيٽس ڪنٽرولر مئنيجر ۾ نوڊ ڪنٽرولر صحت جي جانچ ڪرڻ لاءِ ڪلستر جي سڀني نوڊس مان باقاعدگي سان هلندو آهي - وڌيڪ نوڊس، ڪنٽرولر تي وڌيڪ لوڊ.

etcd ڊيٽابيس تي لوڊ پڻ وڌي رهيو آهي - هر ڪوبيليٽ ۽ ڪوبي-پراڪسي ڪالون ڏسڻ وارو etcd لاءِ (API ذريعي)، جنهن تي etcd کي اعتراض جي تازه ڪاري نشر ڪرڻ گهرجي.

عام طور تي، هر ڪم ڪندڙ نوڊ ماسٽر نوڊس جي سسٽم جي اجزاء تي اضافي لوڊ ڪري ٿو.

ڪبرنيٽس ڪم ڪندڙ نوڊس: ڪيترائي ننڍا يا ڪيترائي وڏا؟
Kubernetes سرڪاري طور تي ڪلستر جي مدد ڪري ٿو نوڊس جو تعداد 5000 تائين. بهرحال، عملي طور تي اڳ ۾ ئي 500 نوڊس آهن غير معمولي مسئلا پيدا ڪري سگھن ٿا.

ڪم ڪندڙ نوڊس جي وڏي تعداد کي منظم ڪرڻ لاء، توھان کي چونڊڻ گھرجي وڌيڪ طاقتور ماسٽر نوڊس. مثال طور، ڪوب اپ خودڪار طور تي انسٽال ڪم ڪندڙ نوڊس جي تعداد جي لحاظ سان ماسٽر نوڊ لاء صحيح VM سائيز. اهو آهي، وڌيڪ ڪم ڪندڙ نوڊس، وڌيڪ پيداوار ماسٽر نوڊس هجڻ گهرجي.

انهن مخصوص مسئلن کي حل ڪرڻ لاء خاص ترقيات آهن، جهڙوڪ ورڪ ڪبليٽ. هي سسٽم توهان کي پابنديون ختم ڪرڻ ۽ ڪم ڪندڙ نوڊس جي وڏي تعداد سان ڪلستر ٺاهڻ جي اجازت ڏئي ٿو.

نقصان #2: وڌيڪ مٿي جي قيمت.
هر ڪم ڪندڙ نوڊ تي، ڪبرنيٽس سسٽم ڊيمن جو هڪ سيٽ هلائي ٿو - انهن ۾ شامل ڪنٽينر رن ٽائم (جهڙوڪ ڊڪر)، ڪبي-پراڪسي ۽ ڪبيليٽ، بشمول caAdvisor. گڏو گڏ اهي وسيلن جي هڪ خاص مقرر رقم استعمال ڪن ٿا.

جيڪڏهن توهان وٽ ڪيترائي ننڍا نوڊس آهن، هر نوڊ تي هن مٿي جو تناسب وڏو آهي. مثال طور، تصور ڪريو ته سڀئي سسٽم ڊيمون هڪ واحد نوڊ تي گڏجي 0,1 سي پي يو ڪور ۽ 0,1 GB ميموري استعمال ڪن ٿا. جيڪڏهن توهان وٽ 10 GB ميموري سان هڪ ڏهه-ڪور نوڊ آهي، ته ڊيمون ڪلستر جي گنجائش جو 1٪ استعمال ڪن ٿا. ٻئي طرف، ڏهن سنگل-ڪور نوڊس تي 1 GB جي ميموري سان، ڊيمون 10٪ ڪلستر جي گنجائش وٺي ويندا.

ان ڪري، گهٽ نوڊس، وڌيڪ موثر طور تي زيربناء استعمال ڪيو ويندو آهي.

نقصان نمبر 3. وسيلن جو غير موثر استعمال
ننڍن نوڊس تي، اهو ٿي سگهي ٿو ته باقي وسيلن جا حصا تمام ننڍا آهن جيڪي ڪنهن به ڪم جي لوڊ کي تفويض ڪرڻ لاء، تنهنڪري اهي غير استعمال ٿيل آهن.

مثال طور، هر پوڊ کي 0,75 GB ياداشت جي ضرورت آهي. جيڪڏهن توهان وٽ ڏهه نوڊس آهن، هر هڪ 1 GB ميموري سان، توهان ڏهه پوڊ هلائي سگهو ٿا، هر نوڊ کي 0,25 GB جي غير استعمال ٿيل ميموري سان ڇڏي ڏيو.

ان جو مطلب اهو آهي ته سڄي ڪلستر جي ياداشت جو 25٪ ضايع ٿي ويو آهي.

10 GB ميموري سان وڏي نوڊ تي، توھان ھلائي سگھوٿا انھن مان 13 ماڊلز - ۽ 0,25 GB جو صرف ھڪڙو غير استعمال ٿيل ٽڪرو ھوندو.

هن معاملي ۾، ياداشت جي صرف 2,5٪ ضايع آهي.

اهڙيء طرح، وسيلن کي استعمال ڪيو ويندو آهي وڌيڪ بهتر طور تي وڏن نوڊس تي.

ڪجھ وڏا ڳٽ يا گھڻا ننڍا؟

تنهن ڪري، ڪهڙو بهتر آهي: هڪ ڪلستر ۾ چند وڏا نوڊس يا ڪيترائي ننڍا؟ هميشه وانگر، ڪو به واضح جواب نه آهي. گهڻو ڪري درخواست جي قسم تي منحصر آهي.

مثال طور، جيڪڏهن هڪ ايپليڪيشن کي 10 GB ياداشت جي ضرورت آهي، وڏيون نوڊس هڪ واضح انتخاب آهن. ۽ جيڪڏهن ايپليڪيشن کي اعلي دستيابي لاءِ ڏهه ڀيرا نقل ڪرڻ جي ضرورت آهي، اهو صرف ٻن نوڊس تي ريپليڪس رکڻ جي خطري جي قيمت آهي - ڪلستر ۾ گهٽ ۾ گهٽ ڏهه نوڊس هجڻ گهرجن.

وچولي حالتن ۾، هر اختيار جي فائدن ۽ نقصانن جي بنياد تي چونڊيو. ٿي سگهي ٿو ته ڪجهه دليل ٻين جي ڀيٽ ۾ توهان جي صورتحال سان وڌيڪ لاڳاپيل آهن.

۽ اهو ضروري ناهي ته سڀني نوڊس کي ساڳئي سائيز ٺاهڻ لاء. ڪجھ به توهان کي پهرين ساڳي سائيز جي نوڊس سان تجربو ڪرڻ کان روڪي ٿو، پوءِ انهن ۾ مختلف سائيز جا نوڊس شامل ڪري، انهن کي ڪلستر ۾ گڏ ڪري. ڪبرنيٽس ڪلستر ۾ ڪم ڪندڙ نوڊس مڪمل طور تي مختلف ٿي سگهن ٿا. تنهنڪري توهان ٻنهي طريقن جي فائدن کي گڏ ڪرڻ جي ڪوشش ڪري سگهو ٿا.

اتي ڪو به هڪ طريقو نه آهي، ۽ هر صورتحال پنهنجي nuances آهي، ۽ صرف پيداوار سچ ڏيکاريندو.

ڪلائوڊ پليٽ فارم ٽيم پاران تيار ڪيل ترجمو Mail.ru ڪلائوڊ حل.

Kubernetes بابت وڌيڪ: 25 ڪلستر جي انتظام ۽ ترتيب ڏيڻ لاء مفيد اوزار.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو