ڪبرنيٽس ۾ آٽو اسڪيلنگ جا ٽي سطح: انهن کي مؤثر طريقي سان ڪيئن استعمال ڪجي

ڪبرنيٽس ۾ آٽو اسڪيلنگ جا ٽي سطح: انهن کي مؤثر طريقي سان ڪيئن استعمال ڪجي
ڪبرنيٽس کي مڪمل طور تي ماسٽر ڪرڻ لاءِ، توهان کي ڄاڻڻ جي ضرورت آهي مختلف طريقن کي ماپڻ لاءِ ڪلسٽر وسيلن: پاران سسٽم ڊولپرز جي مطابق, هي Kubernetes جي مکيه ڪمن مان هڪ آهي. اسان افقي ۽ عمودي آٽو اسڪيلنگ ۽ ڪلستر ريزائزنگ ميڪانيزم جو هڪ اعليٰ سطحي جائزو مهيا ڪيو آهي، ۽ گڏوگڏ انهن کي مؤثر طريقي سان استعمال ڪرڻ بابت سفارشون پڻ ڏنيون آهن.

آرٽيڪل ڪبرنيٽس آٽو اسڪيلنگ 101: ڪلسٽر آٽو اسڪيلر، افقي آٽو اسڪيلر، ۽ ورٽيڪل پوڊ آٽو اسڪيلر ٽيم پاران ترجمو ڪيو ويو جنهن ۾ خودڪار اسڪيلنگ لاڳو ڪئي وئي Mail.ru کان Kubernetes aaS.

ڇو ته اسڪيلنگ بابت سوچڻ ضروري آهي

ڪوبنيٿس - وسيلن جي انتظام ۽ آرڪيسٽريشن لاء هڪ اوزار. يقينن، پوڊس کي ترتيب ڏيڻ، نگراني ڪرڻ، ۽ انتظام ڪرڻ جي سٺي خاصيتن سان ٽينڪر ڪرڻ سٺو آهي (هڪ پوڊ ڪنٽينرز جو هڪ گروپ آهي جيڪو درخواست جي جواب ۾ شروع ڪيو ويو آهي).

تنهن هوندي، توهان کي هيٺين سوالن بابت پڻ سوچڻ گهرجي:

  1. ماڊلز ۽ ايپليڪيشنن کي ڪيئن ماپيو وڃي؟
  2. ڪنٽينرز کي فعال ۽ ڪارائتو ڪيئن رکيو وڃي؟
  3. صارفين کان ڪوڊ ۽ ڪم لوڊ ۾ مسلسل تبديلين جو جواب ڪيئن ڏيو؟

وسيلن ۽ ڪارڪردگي کي متوازن ڪرڻ لاءِ ڪبرنيٽس ڪلسٽرز کي ترتيب ڏيڻ مشڪل ٿي سگھي ٿو ۽ ڪبرنيٽس جي اندروني ڪم جي ماهر جي ڄاڻ جي ضرورت آھي. توهان جي ايپليڪيشن يا خدمتن جو ڪم لوڊ سڄي ڏينهن ۾ يا هڪ ڪلاڪ جي دوران به گهٽجي سگهي ٿو، تنهنڪري توازن هڪ جاري عمل جي طور تي بهترين سوچيو ويندو آهي.

Kubernetes خودڪار اسڪيلنگ جي سطح

مؤثر خودڪار اسڪيلنگ ٻن سطحن جي وچ ۾ هم آهنگي جي ضرورت آهي:

  1. پوڊ جي سطح، بشمول افقي (افقي پوڊ آٽو اسڪيلر، HPA) ۽ عمودي آٽو اسڪيلر (عمودي پوڊ آٽو اسڪيلر، وي پي اي). اهو توهان جي ڪنٽينرز لاءِ موجود وسيلن کي اسڪيل ڪري رهيو آهي.
  2. ڪلستر ليول، جيڪو ڪلستر آٽو اسڪيلر (CA) پاران منظم ڪيو ويندو آهي، جيڪو ڪلستر جي اندر نوڊس جو تعداد وڌائي يا گھٽائي ٿو.

Horizontal Autoscaler (HPA) ماڊل

جيئن ته نالو مشورو ڏئي ٿو، HPA پوڊ ريپليڪس جي تعداد کي ماپ ڪري ٿو. اڪثر ڊيوپس سي پي يو ۽ ميموري لوڊ استعمال ڪندا آهن جيئن نقلن جي تعداد کي تبديل ڪرڻ لاءِ. بهرحال، اهو ممڪن آهي ته سسٽم جي بنياد تي پيماني تي ڪسٽم ميٽرڪس، انهن مجموعا يا اڃا به خارجي ميٽرڪ.

اعلي سطحي HPA آپريٽنگ ڊراگرام:

  1. HPA مسلسل 30 سيڪنڊن جي ڊفالٽ وقفي تي انسٽاليشن دوران بيان ڪيل ميٽرڪ قدرن کي چيڪ ڪري ٿو.
  2. HPA ماڊلز جو تعداد وڌائڻ جي ڪوشش ڪري ٿو جيڪڏهن مخصوص حد تائين پهچي وڃي.
  3. HPA ڊيپلائيمينٽ/ ريپليڪيشن ڪنٽرولر اندر نقلن جو تعداد تازه ڪري ٿو.
  4. ڊيپلائيمينٽ/ ريپليڪشن ڪنٽرولر وري ڪنهن به ضروري اضافي ماڊلز کي ترتيب ڏئي ٿو.

ڪبرنيٽس ۾ آٽو اسڪيلنگ جا ٽي سطح: انهن کي مؤثر طريقي سان ڪيئن استعمال ڪجي
HPA ماڊل جي ٺهڻ واري عمل کي شروع ڪري ٿو جڏهن ميٽرڪ حد تائين پهچي وڃي ٿي

جڏهن HPA استعمال ڪندي، هيٺين تي غور ڪريو:

  • ڊفالٽ HPA چيڪ وقفو آهي 30 سيڪنڊ. اهو پرچم طرفان مقرر ڪيو ويو آهي افقي-پوڊ-آٽو اسڪيلر- هم وقت سازي وارو دور سنڀاليندڙ مينيجر ۾.
  • ڊفالٽ لاڳاپو غلطي 10٪ آهي.
  • ماڊلز جي تعداد ۾ آخري واڌ کان پوء، HPA ٽن منٽن اندر ميٽرڪ کي مستحڪم ڪرڻ جي اميد رکي ٿو. هي وقفو پرچم طرفان مقرر ڪيو ويو آهي افقي-پوڊ-آٽو اسڪيلر-اپ اسڪيل-تاخير.
  • ماڊلز جي تعداد ۾ آخري گهٽتائي کان پوء، HPA کي مستحڪم ڪرڻ لاء پنجن منٽن تائين انتظار ڪري ٿو. هي وقفو پرچم طرفان مقرر ڪيو ويو آهي افقي-پوڊ-آٽو اسڪيلر-ڊائون اسڪيل-تاخير.
  • HPA بهترين ڪم ڪري ٿو ترتيب ڏيڻ واري شين سان بجاءِ نقل ڪنٽرولرز جي. افقي آٽو اسڪيلنگ رولنگ اپڊيٽ سان مطابقت نه رکي ٿي، جيڪا سڌي طرح نقل ڪنٽرولرز کي هٿي وٺندي آهي. تعیناتي سان، نقلن جو تعداد سڌو سنئون ٺاھڻ واري شين تي منحصر آھي.

پوڊ جي عمودي خودڪار اسڪيلنگ

عمودي آٽو اسڪيلنگ (VPA) مختص ڪري ٿو وڌيڪ (يا گهٽ) سي پي يو وقت يا ميموري موجوده پوڊز کي. رياستي يا بي رياست پوڊ لاءِ موزون، پر خاص طور تي رياستي خدمتن لاءِ. جڏهن ته، توهان پڻ استعمال ڪري سگهو ٿا VPA غير رياستي ماڊلز لاءِ جيڪڏهن توهان کي ضرورت آهي پاڻمرادو ترتيب ڏيڻ جي شروعاتي طور تي مختص ڪيل وسيلن جي مقدار کي.

VPA پڻ OOM (ميموري کان ٻاهر) واقعن جو جواب ڏئي ٿو. سي پي يو جي وقت ۽ ياداشت کي تبديل ڪرڻ جي ضرورت آهي پوڊس کي ٻيهر شروع ڪرڻ. جڏهن ٻيهر شروع ڪيو ويو، VPA مختص بجيٽ جو احترام ڪري ٿو (پوڊ ورهائڻ واري بجيٽ، PDB) ماڊلز جي گھٽ ۾ گھٽ گهربل تعداد جي ضمانت ڏيڻ لاء.

توھان مقرر ڪري سگھو ٿا گھٽ ۾ گھٽ ۽ وڌ ۾ وڌ وسيلا ھر ماڊل لاءِ. اهڙيء طرح، توهان 8 GB تائين مختص ڪيل ميموري جي وڌ ۾ وڌ مقدار کي محدود ڪري سگهو ٿا. اهو ڪارائتو آهي جيڪڏهن موجوده نوڊس يقيني طور تي 8 GB کان وڌيڪ ميموري في ڪنٽينر مختص نٿا ڪري سگهن. تفصيلي وضاحتون ۽ آپريٽنگ ميڪانيزم ۾ بيان ڪيو ويو آهي سرڪاري VPA وڪي.

ان کان سواء، VPA هڪ دلچسپ سفارش واري فنڪشن آهي (VPA سفارش ڪندڙ). اهو سڀني ماڊلز جي وسيلن جي استعمال ۽ OOM واقعن کي مانيٽر ڪري ٿو نئين ميموري ۽ سي پي يو جي وقت جي قيمتن کي تجويز ڪرڻ لاءِ هڪ ذهين الگورٿم جي بنياد تي تاريخي ميٽرڪس جي بنياد تي. هتي هڪ API پڻ آهي جيڪو پوڊ هينڊل وٺي ٿو ۽ تجويز ڪيل وسيلن جي قيمتن کي واپس ڪري ٿو.

اهو نوٽ ڪرڻ جي قابل آهي ته VPA سفارش ڪندڙ وسيلن جي "حد" کي ٽريڪ نٿو ڪري. اهو نتيجو ٿي سگھي ٿو ته ماڊلز جي انحصار ۾ وسيلن جي نوڊس اندر. اهو بهتر آهي ته حد مقرر ڪرڻ جي نالي جي سطح تي وڏي ميموري يا CPU واپرائڻ کان بچڻ لاءِ.

اعلي سطحي VPA آپريشن اسڪيم:

  1. VPA مسلسل 10 سيڪنڊن جي ڊفالٽ وقفي تي انسٽاليشن دوران بيان ڪيل ميٽرڪ قدرن کي چيڪ ڪري ٿو.
  2. جيڪڏهن مخصوص حد تائين پهچي وڃي ٿي، VPA مختص ڪيل وسيلن کي تبديل ڪرڻ جي ڪوشش ڪري ٿو.
  3. VPA ڊيپلائيمينٽ/ ريپليڪيشن ڪنٽرولر اندر وسيلن جي تعداد کي اپڊيٽ ڪري ٿو.
  4. جڏهن ماڊل ٻيهر شروع ٿين ٿا، سڀئي نوان وسيلا ٺاهيل مثالن تي لاڳو ٿين ٿا.

ڪبرنيٽس ۾ آٽو اسڪيلنگ جا ٽي سطح: انهن کي مؤثر طريقي سان ڪيئن استعمال ڪجي
VPA وسيلن جي گهربل مقدار کي شامل ڪري ٿو

مھرباني ڪري ھيٺين نقطن کي ذهن ۾ رکو جڏھن VPA استعمال ڪريو:

  • اسڪيلنگ کي لازمي طور تي پوڊ جي ٻيهر شروع ڪرڻ جي ضرورت آهي. اهو ضروري آهي ته تبديلين کان پوء غير مستحڪم آپريشن کان بچڻ لاء. اعتبار لاءِ، ماڊل ٻيهر شروع ڪيا ويا آهن ۽ نوڊس ۾ ورهايل نون مختص ڪيل وسيلن جي بنياد تي.
  • VPA ۽ HPA اڃا تائين هڪ ٻئي سان مطابقت نه رکندا آهن ۽ ساڳئي پوڊ تي هلائي نٿا سگهن. جيڪڏهن توهان هڪ ئي ڪلستر ۾ ٻئي اسڪيلنگ ميڪانيزم استعمال ڪري رهيا آهيو، پڪ ڪريو ته توهان جون سيٽنگون انهن کي ساڳئي شين تي چالو ٿيڻ کان روڪين ٿيون.
  • VPA صرف ماضي ۽ موجوده استعمال جي بنياد تي وسيلن جي ڪنٽينر جي درخواستن کي ترتيب ڏئي ٿو. اهو وسيلن جي استعمال جي حد مقرر نٿو ڪري. اتي مسئلا ٿي سگهن ٿا ايپليڪيشنون صحيح طريقي سان ڪم نه ڪرڻ ۽ وڌيڪ ۽ وڌيڪ وسيلن تي قبضو ڪرڻ شروع ڪرڻ سان، هي ڪبرنيٽس کي هن پوڊ کي بند ڪري ڇڏيندو.
  • VPA اڃا ترقي جي شروعاتي اسٽيج تي آهي. تيار رهو ته شايد ويجهي مستقبل ۾ سسٽم ۾ ڪجهه تبديليون اچي سگهن ٿيون. توهان جي باري ۾ پڙهي سگهو ٿا معلوم حدون и ترقياتي منصوبا. اهڙيء طرح، VPA ۽ HPA جي گڏيل آپريشن کي لاڳو ڪرڻ لاء منصوبا آهن، انهي سان گڏ ماڊلز جي مقرري سان گڏ انهن لاء عمودي آٽو اسڪيلنگ پاليسي (مثال طور، هڪ خاص ليبل 'VPA جي ضرورت آهي').

ڪبرنيٽس ڪلستر کي خودڪار ڪرڻ

ڪلستر آٽو اسڪيلر (CA) نوڊس جو تعداد تبديل ڪري ٿو انتظار جي پوڊ جي تعداد جي بنياد تي. سسٽم وقتي طور تي التوا واري ماڊلز جي چڪاس ڪندو آهي - ۽ ڪلستر جي سائيز کي وڌائيندو آهي جيڪڏهن وڌيڪ وسيلن جي ضرورت هجي ۽ جيڪڏهن ڪلستر قائم ڪيل حدن کان وڌيڪ نه هجي. CA ڪلائوڊ سروس فراهم ڪندڙ سان رابطو ڪري ٿو، ان کان اضافي نوڊس جي درخواست ڪري ٿو، يا بيڪار نوڊس کي جاري ڪري ٿو. CA جو پهريون عام طور تي دستياب نسخو Kubernetes 1.8 ۾ متعارف ڪرايو ويو.

SA آپريشن جي اعلي سطحي اسڪيم:

  1. CA 10 سيڪنڊن جي ڊفالٽ وقفي تي التوا واري ماڊلز لاءِ چيڪ ڪري ٿو.
  2. جيڪڏهن هڪ يا وڌيڪ پوڊ اسٽينڊ بائي حالت ۾ آهن ڇو ته ڪلستر وٽ ڪافي دستياب وسيلا نه آهن انهن کي مختص ڪرڻ لاءِ، اهو هڪ يا وڌيڪ اضافي نوڊس مهيا ڪرڻ جي ڪوشش ڪري ٿو.
  3. جڏهن ڪلائوڊ سروس فراهم ڪندڙ گهربل نوڊ مختص ڪري ٿو، اهو ڪلستر ۾ شامل ٿئي ٿو ۽ پوڊ جي خدمت ڪرڻ لاء تيار آهي.
  4. Kubernetes شيڊولر ورهائي ٿو التوا پوڊ نئين نوڊ ڏانهن. جيڪڏهن هن کان پوء ڪجهه ماڊل اڃا تائين انتظار جي حالت ۾ رهندا آهن، اهو عمل بار بار ڪيو ويندو آهي ۽ نوان نوڊس ڪلستر ۾ شامل ڪيا ويندا آهن.

ڪبرنيٽس ۾ آٽو اسڪيلنگ جا ٽي سطح: انهن کي مؤثر طريقي سان ڪيئن استعمال ڪجي
بادل ۾ ڪلستر نوڊس جي خودڪار روزي

CA استعمال ڪرڻ وقت ھيٺين تي غور ڪريو:

  • CA انهي ڳالهه کي يقيني بڻائي ٿو ته ڪلستر ۾ سڀني پوڊس کي هلائڻ لاءِ ڪمرو آهي، سي پي يو لوڊ کان سواءِ. اهو پڻ پڪ ڪرڻ جي ڪوشش ڪري ٿو ته ڪلستر ۾ غير ضروري نوڊس نه آهن.
  • CA تقريباً 30 سيڪنڊن کان پوءِ ماپ ڪرڻ جي ضرورت کي رجسٽر ڪري ٿو.
  • هڪ دفعي هڪ نوڊ جي وڌيڪ ضرورت ناهي، سي اي ڊفالٽ 10 منٽ انتظار ڪرڻ کان پهريان سسٽم کي اسڪيل ڪرڻ کان اڳ.
  • آٽو اسڪيلنگ سسٽم کي وڌائڻ وارن جو تصور آهي. اهي نوڊس جو هڪ گروپ چونڊڻ لاءِ مختلف حڪمت عمليون آهن جن ۾ نوان نوڊس شامل ڪيا ويندا.
  • اختيار استعمال ڪريو ذميواري سان cluster-autoscaler.kubernetes.io/safe-to-evict (سچو). جيڪڏھن توھان تمام گھڻا پوڊ انسٽال ڪريو ٿا، يا جيڪڏھن انھن مان گھڻا سڀني نوڊس ۾ پکڙيل آھن، توھان گھڻو ڪري ڪلستر کي ماپڻ جي صلاحيت وڃائي ويھندا.
  • استعمال ڪريو PodDisruptionBudgetsپوڊ کي ختم ٿيڻ کان روڪڻ لاء، جيڪو توهان جي ايپليڪيشن جا حصا مڪمل طور تي ڀڃڻ سبب ٿي سگهي ٿو.

ڪبرنيٽس آٽو اسڪيلر ڪيئن هڪ ٻئي سان لهه وچڙ ۾ اچن ٿا

مڪمل هم آهنگيءَ لاءِ، آٽو اسڪيلنگ کي پوڊ ليول (HPA/VPA) ۽ ڪلستر ليول ٻنهي تي لاڳو ڪيو وڃي. اهي هڪ ٻئي سان نسبتا آسانيء سان رابطو ڪن ٿا:

  1. HPAs يا VPAs تازه ڪاري پوڊ ريپليڪس يا وسيلن کي مختص ڪيل موجوده پوڊز لاءِ.
  2. جيڪڏهن منصوبابندي ڪيل اسڪيلنگ لاءِ ڪافي نوڊس نه آهن، CA انتظار جي حالت ۾ پوڊ جي موجودگي کي نوٽيس ڪري ٿو.
  3. CA نئين نوڊس کي مختص ڪري ٿو.
  4. ماڊلز کي نون نوڊس ۾ ورهايو ويو آھي.

ڪبرنيٽس ۾ آٽو اسڪيلنگ جا ٽي سطح: انهن کي مؤثر طريقي سان ڪيئن استعمال ڪجي
گڏيل ڪبرنيٽس اسڪيل آئوٽ سسٽم

ڪبرنيٽس آٽو اسڪيلنگ ۾ عام غلطيون

اتي ڪيترائي عام مسئلا آھن جيڪي پاڻمرادو اسڪيلنگ کي لاڳو ڪرڻ جي ڪوشش ڪندا آھن.

HPA ۽ VPA ميٽرڪ ۽ ڪجهه تاريخي ڊيٽا تي ڀاڙي ٿو. جيڪڏهن ڪافي وسيلا مختص ڪيا ويا آهن، ماڊلز کي گھٽ ڪيو ويندو ۽ ميٽرڪ پيدا ڪرڻ جي قابل نه هوندا. انهي صورت ۾، خودڪار اسڪيلنگ ڪڏهن به نه ٿيندو.

اسڪيلنگ آپريشن پاڻ وقت جي حساس آهي. اسان چاهيون ٿا ته ماڊلز ۽ ڪلستر تيزيءَ سان ماپ ڪن - ان کان اڳ جو صارفين کي ڪا به پريشاني يا ناڪامي نظر اچي. تنهن ڪري، پوڊ ۽ ڪلستر لاء اوسط اسڪيلنگ وقت کي حساب ۾ ورتو وڃي.

مثالي منظر - 4 منٽ:

  1. 30 سيڪنڊ. ھدف جي ماپ کي اپڊيٽ ڪريو: 30-60 سيڪنڊ.
  2. 30 سيڪنڊ. HPA چيڪ ڪري ٿو ميٽرڪ ويلز: 30 سيڪنڊ.
  3. 2 سيڪنڊن کان گهٽ. پوڊ ٺاهيا ويا آهن ۽ انتظار جي حالت ۾ وڃو: 1 سيڪنڊ.
  4. 2 سيڪنڊن کان گهٽ. CA انتظار ڪندڙ ماڊلز کي ڏسي ٿو ۽ روزي نوڊس تي ڪال موڪلي ٿو: 1 سيڪنڊ.
  5. 3 منٽ. بادل فراهم ڪندڙ نوڊس مختص ڪري ٿو. K8s انتظار ڪري ٿو جيستائين اهي تيار نه ٿين: 10 منٽن تائين (انحصار ڪيترن ئي عنصر تي).

بدترين حالت (وڌيڪ حقيقي) منظر - 12 منٽ:

  1. 30 سيڪنڊ. ھدف جي ماپ کي اپڊيٽ ڪريو.
  2. 30 سيڪنڊ. HPA ميٽرڪ قدر چيڪ ڪري ٿو.
  3. 2 سيڪنڊن کان گهٽ. پوڊ ٺاهيا ويا آهن ۽ اسٽينڊ بائي اسٽيٽ ۾ داخل ٿين ٿا.
  4. 2 سيڪنڊن کان گهٽ. CA انتظار ڪندڙ ماڊلز کي ڏسي ٿو ۽ نوڊس جي فراهمي لاءِ ڪال ڪري ٿو.
  5. 10 منٽ. بادل فراهم ڪندڙ نوڊس مختص ڪري ٿو. K8s انتظار ڪري ٿو جيستائين اهي تيار آهن. انتظار جو وقت ڪيترن ئي عنصر تي منحصر آهي، جهڙوڪ وينڊر دير، او ايس دير، ۽ سپورٽ اوزار.

اسان جي CA سان ڪلائوڊ فراهم ڪندڙن جي اسڪيلنگ ميڪانيزم کي غلط استعمال نه ڪريو. بعد ۾ ڪبرنيٽس ڪلستر جي اندر هلندو آهي، جڏهن ته ڪلائوڊ فراهم ڪندڙ انجڻ نوڊ ورهائڻ جي بنياد تي هلندي آهي. اها خبر ناهي ته توهان جي پوڊ يا ايپليڪيشن سان ڇا ٿي رهيو آهي. اهي نظام متوازي ڪم ڪن ٿا.

ڪبرنيٽس ۾ اسڪيلنگ کي ڪيئن منظم ڪجي

  1. ڪبرنيٽس هڪ وسيلن جي انتظام ۽ آرڪسٽريشن جو اوزار آهي. پوڊس ۽ ڪلسٽر وسيلن جي انتظام لاءِ آپريشنز ڪبرنيٽس ۾ مهارت حاصل ڪرڻ ۾ هڪ اهم سنگ ميل آهن.
  2. HPA ۽ VPA کي مدنظر رکندي پوڊ اسڪيبلٽي جي منطق کي سمجھو.
  3. CA صرف استعمال ڪيو وڃي جيڪڏهن توهان کي توهان جي پوڊ ۽ ڪنٽينرز جي ضرورتن جي سٺي ڄاڻ آهي.
  4. هڪ ڪلستر کي بهتر طور تي ترتيب ڏيڻ لاء، توهان کي سمجهڻ جي ضرورت آهي ته ڪيئن مختلف اسڪيلنگ سسٽم گڏجي ڪم ڪن ٿا.
  5. جڏهن اسڪيلنگ جي وقت جو اندازو لڳايو، ذهن ۾ بدترين ڪيس ۽ بهترين ڪيس جي منظرنامو رکو.

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

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