کبرنیٹس میں آٹو اسکیلنگ کے تین درجے: ان کا مؤثر طریقے سے استعمال کیسے کریں۔

کبرنیٹس میں آٹو اسکیلنگ کے تین درجے: ان کا مؤثر طریقے سے استعمال کیسے کریں۔
Kubernetes میں مکمل مہارت حاصل کرنے کے لیے، آپ کو کلسٹر وسائل کی پیمائش کرنے کے مختلف طریقے جاننے کی ضرورت ہے: بذریعہ سسٹم ڈویلپرز کے مطابق، یہ Kubernetes کے اہم کاموں میں سے ایک ہے۔ ہم نے افقی اور عمودی آٹو سکیلنگ اور کلسٹر ریزائزنگ میکانزم کا ایک اعلیٰ سطحی جائزہ فراہم کیا ہے، ساتھ ہی ان کو مؤثر طریقے سے استعمال کرنے کے بارے میں سفارشات بھی فراہم کی ہیں۔

مضمون Kubernetes Autoscaling 101: کلسٹر آٹو اسکیلر، Horizontal Autoscaler، اور Vertical Pod Autoscaler اس ٹیم کے ذریعہ ترجمہ کیا گیا جس نے آٹو اسکیلنگ کو لاگو کیا۔ Mail.ru سے Kubernetes aaS.

اسکیلنگ کے بارے میں سوچنا کیوں ضروری ہے۔

Kubernetes - وسائل کے انتظام اور آرکیسٹریشن کے لیے ایک ٹول۔ بلاشبہ، پوڈز کی تعیناتی، نگرانی، اور انتظام کی عمدہ خصوصیات کے ساتھ ٹنکر کرنا اچھا لگتا ہے (ایک پوڈ کنٹینرز کا ایک گروپ ہے جو درخواست کے جواب میں شروع کیا جاتا ہے)۔

تاہم، آپ کو درج ذیل سوالات کے بارے میں بھی سوچنا چاہیے:

  1. ماڈیولز اور ایپلی کیشنز کی پیمائش کیسے کریں؟
  2. کنٹینرز کو فعال اور موثر کیسے رکھا جائے؟
  3. صارفین کی طرف سے کوڈ اور کام کے بوجھ میں مسلسل تبدیلیوں کا جواب کیسے دیا جائے؟

وسائل اور کارکردگی کو متوازن کرنے کے لیے Kubernetes کلسٹرز کو ترتیب دینا مشکل ہو سکتا ہے اور اس کے لیے Kubernetes کے اندرونی کام کے ماہرانہ علم کی ضرورت ہوتی ہے۔ آپ کی درخواست یا خدمات کے کام کا بوجھ پورے دن میں یا ایک گھنٹے کے دوران بھی بدل سکتا ہے، لہذا توازن کو ایک جاری عمل کے طور پر بہتر سمجھا جاتا ہے۔

Kubernetes آٹو اسکیلنگ لیولز

مؤثر آٹو اسکیلنگ کے لیے دو سطحوں کے درمیان ہم آہنگی کی ضرورت ہوتی ہے:

  1. پوڈ لیول، بشمول افقی (Horizontal Pod Autoscaler, HPA) اور عمودی آٹو اسکیلر (Vertical Pod Autoscaler, VPA)۔ یہ آپ کے کنٹینرز کے لیے دستیاب وسائل کی پیمائش کر رہا ہے۔
  2. کلسٹر لیول، جس کا انتظام کلسٹر آٹو اسکیلر (CA) کے ذریعے کیا جاتا ہے، جو کلسٹر کے اندر نوڈس کی تعداد کو بڑھاتا یا کم کرتا ہے۔

Horizontal Autoscaler (HPA) ماڈیول

جیسا کہ نام سے پتہ چلتا ہے، HPA پوڈ کی نقلوں کی تعداد کو پیمانہ کرتا ہے۔ زیادہ تر ڈیوپس نقل کی تعداد کو تبدیل کرنے کے لیے CPU اور میموری بوجھ کو محرکات کے طور پر استعمال کرتے ہیں۔ تاہم، اس کی بنیاد پر نظام کی پیمائش ممکن ہے حسب ضرورت میٹرکسان کی مجموعے یا یہاں تک کہ بیرونی میٹرکس.

اعلی سطحی HPA آپریٹنگ خاکہ:

  1. HPA 30 سیکنڈ کے پہلے سے طے شدہ وقفے پر انسٹالیشن کے دوران متعین میٹرک ویلیوز کو مسلسل چیک کرتا ہے۔
  2. اگر مخصوص حد تک پہنچ جائے تو HPA ماڈیولز کی تعداد بڑھانے کی کوشش کرتا ہے۔
  3. HPA تعیناتی/ریپلیکیشن کنٹرولر کے اندر نقل کی تعداد کو اپ ڈیٹ کرتا ہے۔
  4. تعیناتی / نقل کنٹرولر پھر کوئی ضروری اضافی ماڈیول تعینات کرتا ہے۔

کبرنیٹس میں آٹو اسکیلنگ کے تین درجے: ان کا مؤثر طریقے سے استعمال کیسے کریں۔
میٹرک حد تک پہنچنے پر HPA ماڈیول کی تعیناتی کا عمل شروع کرتا ہے۔

HPA استعمال کرتے وقت، درج ذیل پر غور کریں:

  • پہلے سے طے شدہ HPA چیک وقفہ 30 سیکنڈ ہے۔ یہ پرچم کی طرف سے مقرر کیا جاتا ہے افقی-پوڈ-آٹو اسکیلر- مطابقت پذیری کی مدت کنٹرولر مینیجر میں۔
  • ڈیفالٹ رشتہ دار غلطی 10% ہے۔
  • ماڈیولز کی تعداد میں آخری اضافہ کے بعد، HPA توقع کرتا ہے کہ میٹرکس تین منٹ کے اندر مستحکم ہو جائیں گے۔ یہ وقفہ پرچم کی طرف سے مقرر کیا جاتا ہے افقی-پوڈ-آٹو اسکیلر-اپ سکیل-تاخیر.
  • ماڈیولز کی تعداد میں آخری کمی کے بعد، HPA مستحکم ہونے کے لیے پانچ منٹ تک انتظار کرتا ہے۔ یہ وقفہ پرچم کی طرف سے مقرر کیا جاتا ہے افقی-پوڈ-آٹو اسکیلر-ڈاؤن اسکیل-تاخیر.
  • HPA نقلی کنٹرولرز کے بجائے تعیناتی اشیاء کے ساتھ بہترین کام کرتا ہے۔ افقی آٹو اسکیلنگ رولنگ اپ ڈیٹ کے ساتھ مطابقت نہیں رکھتی ہے، جو ریپلیکشن کنٹرولرز کو براہ راست جوڑتی ہے۔ تعیناتی کے ساتھ، نقل کی تعداد کا انحصار براہ راست تعیناتی اشیاء پر ہوتا ہے۔

پھلیوں کی عمودی آٹو اسکیلنگ

عمودی آٹو اسکیلنگ (VPA) موجودہ پوڈز کے لیے زیادہ (یا کم) CPU وقت یا میموری مختص کرتی ہے۔ ریاستی یا بے وطن پوڈز کے لیے موزوں، لیکن بنیادی طور پر ریاستی خدمات کے لیے۔ تاہم، اگر آپ کو ابتدائی طور پر مختص کردہ وسائل کی مقدار کو خود بخود ایڈجسٹ کرنے کی ضرورت ہو تو آپ سٹیٹ لیس ماڈیولز کے لیے بھی VPA استعمال کر سکتے ہیں۔

VPA OOM (میموری سے باہر) واقعات کا بھی جواب دیتا ہے۔ CPU وقت اور میموری کو تبدیل کرنے کے لیے پوڈز کو دوبارہ شروع کرنے کی ضرورت ہوتی ہے۔ دوبارہ شروع ہونے پر، VPA مختص بجٹ کا احترام کرتا ہے (پھلیوں کی تقسیم کا بجٹ، PDB) ماڈیولز کی کم از کم مطلوبہ تعداد کی ضمانت دینے کے لیے۔

آپ ہر ماڈیول کے لیے کم سے کم اور زیادہ سے زیادہ وسائل مقرر کر سکتے ہیں۔ اس طرح، آپ مختص میموری کی زیادہ سے زیادہ مقدار کو 8 جی بی تک محدود کر سکتے ہیں۔ یہ مفید ہے اگر موجودہ نوڈس یقینی طور پر فی کنٹینر 8 GB سے زیادہ میموری مختص نہیں کرسکتے ہیں۔ تفصیلی وضاحتیں اور آپریٹنگ میکانزم میں بیان کیا گیا ہے۔ سرکاری VPA ویکی.

اس کے علاوہ، VPA میں ایک دلچسپ سفارشی فنکشن (VPA Recommender) ہے۔ یہ تمام ماڈیولز کے وسائل کے استعمال اور OOM واقعات کی نگرانی کرتا ہے تاکہ تاریخی میٹرکس پر مبنی ذہین الگورتھم کی بنیاد پر نئی میموری اور CPU ٹائم ویلیوز تجویز کی جا سکے۔ ایک API بھی ہے جو پوڈ ہینڈل لیتا ہے اور تجویز کردہ وسائل کی قدریں واپس کرتا ہے۔

یہ بات قابل غور ہے کہ VPA Recommender وسائل کی "حد" کو ٹریک نہیں کرتا ہے۔ اس کے نتیجے میں ماڈیول نوڈس کے اندر وسائل کی اجارہ داری بن سکتا ہے۔ زیادہ میموری یا CPU کی کھپت سے بچنے کے لیے نام کی جگہ کی سطح پر حد مقرر کرنا بہتر ہے۔

اعلی سطحی VPA آپریشن اسکیم:

  1. VPA 10 سیکنڈ کے پہلے سے طے شدہ وقفے پر انسٹالیشن کے دوران متعین میٹرک ویلیوز کو مسلسل چیک کرتا ہے۔
  2. اگر مخصوص حد تک پہنچ جاتی ہے تو، VPA وسائل کی مختص رقم کو تبدیل کرنے کی کوشش کرتا ہے۔
  3. VPA تعیناتی/ریپلیکشن کنٹرولر کے اندر وسائل کی تعداد کو اپ ڈیٹ کرتا ہے۔
  4. جب ماڈیولز کو دوبارہ شروع کیا جاتا ہے، تمام نئے وسائل تخلیق شدہ مثالوں پر لاگو ہوتے ہیں۔

کبرنیٹس میں آٹو اسکیلنگ کے تین درجے: ان کا مؤثر طریقے سے استعمال کیسے کریں۔
VPA وسائل کی مطلوبہ مقدار میں اضافہ کرتا ہے۔

براہ کرم VPA استعمال کرتے وقت درج ذیل نکات کو ذہن میں رکھیں:

  • اسکیلنگ کے لیے پوڈ کو دوبارہ شروع کرنے کی ضرورت ہے۔ تبدیلیاں کرنے کے بعد غیر مستحکم آپریشن سے بچنے کے لیے یہ ضروری ہے۔ وشوسنییتا کے لیے، ماڈیولز دوبارہ شروع کیے جاتے ہیں اور نئے مختص کردہ وسائل کی بنیاد پر نوڈس میں تقسیم کیے جاتے ہیں۔
  • VPA اور HPA ابھی تک ایک دوسرے کے ساتھ مطابقت نہیں رکھتے ہیں اور ایک ہی پوڈ پر نہیں چل سکتے ہیں۔ اگر آپ ایک ہی کلسٹر میں دونوں اسکیلنگ میکانزم استعمال کر رہے ہیں، تو یقینی بنائیں کہ آپ کی ترتیبات انہیں ایک ہی اشیاء پر فعال ہونے سے روکتی ہیں۔
  • VPA صرف ماضی اور موجودہ استعمال کی بنیاد پر وسائل کے لیے کنٹینر کی درخواستوں کو ٹیون کرتا ہے۔ یہ وسائل کے استعمال کی حدود متعین نہیں کرتا ہے۔ ایپلیکیشنز کے صحیح طریقے سے کام نہ کرنے اور زیادہ سے زیادہ وسائل لینے شروع کرنے میں مسائل ہو سکتے ہیں، اس کی وجہ سے Kubernetes اس پوڈ کو بند کر دے گا۔
  • VPA ابھی ترقی کے ابتدائی مرحلے میں ہے۔ تیار رہیں کہ مستقبل قریب میں نظام میں کچھ تبدیلیاں آسکتی ہیں۔ کے بارے میں پڑھ سکتے ہیں۔ معلوم حدود и ترقیاتی منصوبے. اس طرح، VPA اور HPA کے مشترکہ آپریشن کو لاگو کرنے کے ساتھ ساتھ ماڈیولز کی تعیناتی کے ساتھ ساتھ ان کے لیے عمودی آٹو اسکیلنگ پالیسی (مثال کے طور پر، ایک خصوصی لیبل 'VPA کی ضرورت ہے') کے منصوبے ہیں۔

کبرنیٹس کلسٹر کو آٹو اسکیل کرنا

کلسٹر آٹو اسکیلر (CA) ویٹنگ پوڈز کی تعداد کی بنیاد پر نوڈس کی تعداد کو تبدیل کرتا ہے۔ نظام وقتاً فوقتاً زیر التواء ماڈیولز کی جانچ پڑتال کرتا ہے - اور اگر مزید وسائل کی ضرورت ہو اور اگر کلسٹر قائم کردہ حدود سے تجاوز نہ کرے تو کلسٹر کا سائز بڑھاتا ہے۔ CA کلاؤڈ سروس فراہم کرنے والے کے ساتھ بات چیت کرتا ہے، اس سے اضافی نوڈس کی درخواست کرتا ہے، یا بیکار کو جاری کرتا ہے۔ CA کا پہلا عام طور پر دستیاب ورژن Kubernetes 1.8 میں متعارف کرایا گیا تھا۔

SA آپریشن کی اعلیٰ سطحی اسکیم:

  1. CA 10 سیکنڈ کے پہلے سے طے شدہ وقفے پر زیر التواء ماڈیولز کی جانچ کرتا ہے۔
  2. اگر ایک یا زیادہ پوڈز اسٹینڈ بائی حالت میں ہیں کیونکہ کلسٹر کے پاس ان کو مختص کرنے کے لیے کافی دستیاب وسائل نہیں ہیں، تو یہ ایک یا زیادہ اضافی نوڈس فراہم کرنے کی کوشش کرتا ہے۔
  3. جب کلاؤڈ سروس فراہم کنندہ مطلوبہ نوڈ مختص کرتا ہے، تو یہ کلسٹر میں شامل ہو جاتا ہے اور پوڈز کی خدمت کے لیے تیار ہوتا ہے۔
  4. Kubernetes شیڈولر زیر التواء پوڈز کو ایک نئے نوڈ میں تقسیم کرتا ہے۔ اگر اس کے بعد بھی کچھ ماڈیول انتظار کی حالت میں رہتے ہیں، تو اس عمل کو دہرایا جاتا ہے اور کلسٹر میں نئے نوڈس شامل کیے جاتے ہیں۔

کبرنیٹس میں آٹو اسکیلنگ کے تین درجے: ان کا مؤثر طریقے سے استعمال کیسے کریں۔
کلاؤڈ میں کلسٹر نوڈس کی خودکار فراہمی

CA استعمال کرتے وقت درج ذیل پر غور کریں:

  • CA اس بات کو یقینی بناتا ہے کہ CPU بوجھ سے قطع نظر کلسٹر میں تمام پوڈز میں چلنے کے لیے جگہ موجود ہے۔ یہ اس بات کو یقینی بنانے کی بھی کوشش کرتا ہے کہ کلسٹر میں کوئی غیر ضروری نوڈس نہ ہوں۔
  • CA تقریباً 30 سیکنڈ کے بعد پیمانے کی ضرورت کو رجسٹر کرتا ہے۔
  • ایک بار جب نوڈ کی مزید ضرورت نہیں رہتی ہے، CA پہلے سے طے شدہ طور پر سسٹم کو اسکیل کرنے سے پہلے 10 منٹ انتظار کرتا ہے۔
  • آٹو اسکیلنگ سسٹم میں توسیع کنندگان کا تصور ہے۔ یہ نوڈس کے گروپ کو منتخب کرنے کے لیے مختلف حکمت عملی ہیں جس میں نئے نوڈس شامل کیے جائیں گے۔
  • آپشن کو ذمہ داری سے استعمال کریں۔ cluster-autoscaler.kubernetes.io/safe-to-evict (سچ). اگر آپ بہت سارے پوڈز انسٹال کرتے ہیں، یا اگر ان میں سے بہت سے تمام نوڈس پر بکھرے ہوئے ہیں، تو آپ بڑی حد تک کلسٹر کو پیمانہ کرنے کی صلاحیت سے محروم ہو جائیں گے۔
  • استعمال کریں PodDisruption Budgetsپوڈز کو حذف ہونے سے روکنے کے لیے، جس کی وجہ سے آپ کی درخواست کے کچھ حصے مکمل طور پر ٹوٹ سکتے ہیں۔

کبرنیٹس آٹو اسکیلرز ایک دوسرے کے ساتھ کیسے تعامل کرتے ہیں۔

کامل ہم آہنگی کے لیے، آٹو اسکیلنگ کو پوڈ لیول (HPA/VPA) اور کلسٹر لیول دونوں پر لاگو کیا جانا چاہیے۔ وہ ایک دوسرے کے ساتھ نسبتاً آسانی سے بات چیت کرتے ہیں:

  1. HPAs یا VPAs پوڈ کی نقلیں یا موجودہ پوڈز کے لیے مختص وسائل کو اپ ڈیٹ کرتے ہیں۔
  2. اگر منصوبہ بند اسکیلنگ کے لیے کافی نوڈس نہیں ہیں، تو CA انتظار کی حالت میں پوڈز کی موجودگی کو دیکھتا ہے۔
  3. CA نئے نوڈس مختص کرتا ہے۔
  4. ماڈیول نئے نوڈس میں تقسیم کیے جاتے ہیں۔

کبرنیٹس میں آٹو اسکیلنگ کے تین درجے: ان کا مؤثر طریقے سے استعمال کیسے کریں۔
تعاون پر مبنی Kubernetes اسکیل آؤٹ سسٹم

Kubernetes آٹو اسکیلنگ میں عام غلطیاں

آٹو اسکیلنگ کو لاگو کرنے کی کوشش کرتے وقت کئی عام مسائل ہیں جن کا سامنا کرنا پڑتا ہے۔

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 انتظار کرتا ہے جب تک کہ وہ تیار نہ ہوں۔ انتظار کا وقت کئی عوامل پر منحصر ہوتا ہے، جیسے وینڈر کی تاخیر، OS میں تاخیر، اور سپورٹ ٹولز۔

ہمارے CA کے ساتھ کلاؤڈ فراہم کنندگان کے اسکیلنگ میکانزم کو الجھائیں۔ مؤخر الذکر ایک Kubernetes کلسٹر کے اندر چلتا ہے، جبکہ کلاؤڈ فراہم کرنے والا انجن نوڈ ڈسٹری بیوشن کی بنیاد پر کام کرتا ہے۔ یہ نہیں جانتا کہ آپ کے پوڈ یا ایپلی کیشن کے ساتھ کیا ہو رہا ہے۔ یہ نظام متوازی طور پر کام کرتے ہیں۔

کبرنیٹس میں اسکیلنگ کا انتظام کیسے کریں۔

  1. Kubernetes ایک وسائل کے انتظام اور آرکیسٹریشن کا آلہ ہے۔ پوڈز اور کلسٹر وسائل کے انتظام کے لیے آپریشنز Kubernetes میں مہارت حاصل کرنے میں ایک اہم سنگ میل ہیں۔
  2. HPA اور VPA کو مدنظر رکھتے ہوئے پوڈ اسکیل ایبلٹی کی منطق کو سمجھیں۔
  3. CA صرف اس صورت میں استعمال کیا جانا چاہئے جب آپ کو اپنے پوڈز اور کنٹینرز کی ضروریات کی اچھی طرح سمجھ ہو۔
  4. کلسٹر کو بہترین طریقے سے ترتیب دینے کے لیے، آپ کو یہ سمجھنے کی ضرورت ہے کہ مختلف اسکیلنگ سسٹم ایک ساتھ کیسے کام کرتے ہیں۔
  5. اسکیلنگ کے وقت کا تخمینہ لگاتے وقت، بدترین اور بہترین صورت حال کو ذہن میں رکھیں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں