مختلف ڈیٹا سینٹرز میں کبرنیٹس کلسٹرز کو کیسے جوڑیں۔
ہماری Kubernetes Quick Start سیریز میں خوش آمدید۔ یہ ایک باقاعدہ کالم ہے جس میں سب سے دلچسپ سوالات ہیں جو ہمیں آن لائن اور ہماری تربیت میں موصول ہوتے ہیں۔ Kubernetes ماہر جوابات۔
آج کا ماہر ڈینیئل پولینچک ہے (ڈینیئل پولینسک)۔ ڈینیئل میں ایک انسٹرکٹر اور سافٹ ویئر ڈویلپر کے طور پر کام کرتا ہے۔ Learnk8s.
اکثر، بنیادی ڈھانچے کو نقل کیا جاتا ہے اور مختلف علاقوں میں تقسیم کیا جاتا ہے، خاص طور پر کنٹرول شدہ ماحول میں۔
اگر ایک خطہ دستیاب نہیں ہے، تو رکاوٹوں سے بچنے کے لیے ٹریفک کو دوسرے علاقے میں بھیج دیا جاتا ہے۔
Kubernetes کے ساتھ، آپ ایک جیسی حکمت عملی استعمال کر سکتے ہیں اور کام کے بوجھ کو مختلف علاقوں میں تقسیم کر سکتے ہیں۔
آپ کے پاس فی ٹیم، علاقہ، ماحول، یا ان عناصر کا مجموعہ ایک یا زیادہ کلسٹرز ہو سکتے ہیں۔
آپ کے کلسٹرز کو مختلف کلاؤڈز اور آن پریمیسس میں ہوسٹ کیا جا سکتا ہے۔
لیکن آپ اس طرح کے جغرافیائی پھیلاؤ کے لیے انفراسٹرکچر کی منصوبہ بندی کیسے کرتے ہیں؟
کیا آپ کو ایک نیٹ ورک پر کئی کلاؤڈ ماحول کے لیے ایک بڑا کلسٹر بنانے کی ضرورت ہے؟
یا بہت سے چھوٹے کلسٹرز ہیں اور ان کو کنٹرول کرنے اور ہم آہنگ کرنے کا کوئی طریقہ تلاش کریں؟
ایک لیڈر شپ کلسٹر
ایک نیٹ ورک پر ایک کلسٹر بنانا اتنا آسان نہیں ہے۔
تصور کریں کہ آپ کو حادثہ پیش آیا ہے، کلسٹر سیگمنٹس کے درمیان رابطہ ختم ہو گیا ہے۔
اگر آپ کے پاس ایک ماسٹر سرور ہے، تو آدھے وسائل نئے کمانڈز حاصل کرنے کے قابل نہیں ہوں گے کیونکہ وہ ماسٹر سے رابطہ نہیں کر سکیں گے۔
اور اسی وقت آپ کے پاس پرانی روٹنگ ٹیبلز ہیں (kube-proxy نئے ڈاؤن لوڈ نہیں کر سکتے ہیں) اور کوئی اضافی پوڈ (کبلیٹ اپ ڈیٹ کی درخواست نہیں کر سکتے ہیں)۔
معاملات کو مزید خراب کرنے کے لیے، اگر Kubernetes کو کوئی نوڈ نظر نہیں آتا ہے، تو یہ اسے یتیم کے طور پر نشان زد کرتا ہے اور غائب پوڈز کو موجودہ نوڈس میں تقسیم کرتا ہے۔
نتیجے کے طور پر، آپ کے پاس دو گنا زیادہ پھلیاں ہیں۔
اگر آپ ہر علاقے کے لیے ایک ماسٹر سرور بناتے ہیں، تو etcd ڈیٹا بیس میں متفقہ الگورتھم کے ساتھ مسائل ہوں گے۔ (تقریبا. ایڈ — درحقیقت، etcd ڈیٹا بیس کا ماسٹر سرورز پر واقع ہونا ضروری نہیں ہے۔ اسے ایک ہی علاقے میں سرورز کے الگ گروپ پر چلایا جا سکتا ہے۔ سچ ہے، ایک ہی وقت میں کلسٹر کی ناکامی کا ایک نقطہ ہو رہا ہے. لیکن جلدی۔)
etcd استعمال کرتا ہے۔ بیڑا الگورتھمڈسک پر لکھنے سے پہلے قیمت پر گفت و شنید کرنا۔
یعنی، ریاست کو etcd پر لکھے جانے سے پہلے زیادہ تر مثالوں کو اتفاق رائے تک پہنچنا چاہیے۔
اگر etcd مثالوں کے درمیان لیٹنسی ڈرامائی طور پر بڑھ جاتی ہے، جیسا کہ مختلف خطوں میں تین etcd مثالوں کے ساتھ ہوتا ہے، تو کسی قدر کو گفت و شنید کرنے اور اسے ڈسک پر لکھنے میں کافی وقت لگتا ہے۔
یہ کبرنیٹس کنٹرولرز میں ظاہر ہوتا ہے۔
کنٹرولر مینیجر کو تبدیلی کے بارے میں جاننے اور ڈیٹا بیس پر جواب لکھنے کے لیے مزید وقت درکار ہے۔
اور چونکہ ایک کنٹرولر نہیں ہے، بلکہ کئی، ایک سلسلہ ردعمل کا نتیجہ ہوتا ہے اور پورا کلسٹر بہت آہستہ سے کام کرنا شروع کر دیتا ہے۔.
فی الحال ایک کلسٹر کے لیے بڑے نیٹ ورک کی کوئی اچھی مثالیں نہیں ہیں۔
بنیادی طور پر، ڈویلپر کمیونٹی اور SIG-کلسٹر گروپ یہ جاننے کی کوشش کر رہے ہیں کہ کس طرح کلسٹرز کو آرکیسٹریٹ کیا جائے جس طرح Kubernetes آرکیسٹریٹس کنٹینرز کرتا ہے۔
پہلی بار، ہم نے کیوب فیڈریشن ٹول کا استعمال کرتے ہوئے کلسٹرز کے مجموعے کو ایک واحد چیز کے طور پر منظم کرنے کی کوشش کی۔
آغاز اچھا تھا لیکن آخر میں کیوب فیڈریشن کبھی مقبول نہیں ہوسکی کیونکہ اس نے تمام وسائل کا ساتھ نہیں دیا۔
اس نے وفاق کی فراہمی اور خدمات کی حمایت کی، لیکن اسٹیٹفول سیٹس کی نہیں، مثال کے طور پر۔
نیز، فیڈریشن کی ترتیب تشریحات کی شکل میں منتقل کی گئی تھی اور لچکدار نہیں تھی۔
تصور کریں کہ آپ صرف تشریحات کا استعمال کرتے ہوئے فیڈریشن میں ہر کلسٹر کے لئے نقل کی تقسیم کو کیسے بیان کرسکتے ہیں۔
یہ ایک مکمل گڑبڑ تھی۔
SIG-cluster نے kubefed v1 کے بعد کافی کام کیا اور ایک مختلف زاویے سے مسئلہ سے رجوع کرنے کا فیصلہ کیا۔
تشریحات کے بجائے، انہوں نے ایک کنٹرولر جاری کرنے کا فیصلہ کیا جو کلسٹرز پر نصب ہے۔ اسے کسٹم ریسورس ڈیفینیشنز (CRDs) کا استعمال کرتے ہوئے اپنی مرضی کے مطابق بنایا جا سکتا ہے۔
ہر ایک وسائل کے لیے جو فیڈریشن کا حصہ ہو گا، آپ کے پاس تین حصوں کے ساتھ ایک حسب ضرورت CRD تعریف ہے:
وسائل کی معیاری تعریف، مثال کے طور پر تعیناتی؛
سیکشن placementجہاں آپ وضاحت کرتے ہیں کہ وفاق میں وسائل کی تقسیم کیسے کی جائے گی۔
سیکشن override، جہاں ایک مخصوص وسائل کے لیے آپ پلیسمنٹ سے وزن اور پیرامیٹرز کو اوور رائیڈ کر سکتے ہیں۔
پلیسمنٹ اور اوور رائڈ سیکشنز کے ساتھ مشترکہ ڈیلیوری کی ایک مثال یہ ہے۔
آپشن 2: Booking.com کے انداز میں کلسٹرز کو یکجا کرنا
Booking.com کے ڈویلپرز نے kubefed v2 پر کام نہیں کیا، لیکن وہ Shipper کے ساتھ آئے - ایک آپریٹر جو کئی کلسٹرز، کئی علاقوں اور کئی بادلوں میں ڈیلیوری کے لیے ہے۔
دونوں ٹولز آپ کو اپنی ملٹی کلسٹر تعیناتی کی حکمت عملی کو اپنی مرضی کے مطابق کرنے کی اجازت دیتے ہیں (کون سے کلسٹرز استعمال ہوتے ہیں اور ان کی کتنی نقلیں ہیں)۔
لیکن شپپر کا مقصد ترسیل کے دوران غلطیوں کے خطرے کو کم کرنا ہے۔
شپپر میں، آپ ان اقدامات کی ایک سیریز کی وضاحت کر سکتے ہیں جو پچھلی اور موجودہ تعیناتی اور آنے والی ٹریفک کے حجم کے درمیان نقل کی تقسیم کو بیان کرتے ہیں۔
جب آپ کسی وسیلہ کو کسی کلسٹر کی طرف دھکیلتے ہیں، تو Shipper کنٹرولر بتدریج اس تبدیلی کو تمام جوائنڈ کلسٹروں میں رول آؤٹ کرتا ہے۔
اس کے علاوہ، شپر بہت محدود ہے.
مثال کے طور پر، یہ ہیلم چارٹس کو بطور ان پٹ قبول کرتا ہے۔ اور ونیلا وسائل کی حمایت نہیں کرتا ہے۔
عام اصطلاحات میں، شپپر اس طرح کام کرتا ہے۔
معیاری ترسیل کے بجائے، آپ کو ایک ایپلیکیشن وسیلہ بنانے کی ضرورت ہے جس میں ہیلم چارٹ شامل ہو:
لیکن کلسٹر کے ساتھ تعامل کرنے اور وسائل کو حسب ضرورت تعریفوں میں لپیٹنے کے لیے ایک نئے طریقے کے ساتھ آنے کے بجائے، ملٹی کلسٹر-شیڈیولر معیاری Kubernetes لائف سائیکل میں سرایت کرتا ہے اور پوڈز بنانے والی تمام کالوں کو روکتا ہے۔
ہر تخلیق شدہ پوڈ کو فوری طور پر ایک ڈمی سے تبدیل کیا جاتا ہے۔
اصل پوڈ ایک اور منصوبہ بندی کے چکر سے گزرتا ہے جہاں، پوری فیڈریشن کی پولنگ کے بعد، تقرری کا فیصلہ کیا جاتا ہے۔
آخر میں، پوڈ کو ٹارگٹ کلسٹر تک پہنچایا جاتا ہے۔
نتیجے کے طور پر، آپ کے پاس ایک اضافی پوڈ ہے جو کچھ نہیں کرتا، صرف جگہ لیتا ہے۔
فائدہ یہ ہے کہ آپ کو سپلائی کو یکجا کرنے کے لیے نئے وسائل لکھنے کی ضرورت نہیں تھی۔
ہر وسیلہ جو پوڈ بناتا ہے خود بخود ضم ہونے کے لیے تیار ہے۔
یہ دلچسپ ہے، کیونکہ اچانک آپ کو کئی علاقوں میں سپلائیز تقسیم کر دی گئیں، اور آپ نے محسوس بھی نہیں کیا۔ تاہم، یہ کافی خطرناک ہے، کیونکہ یہاں سب کچھ جادو پر منحصر ہے۔
لیکن جب شپپر زیادہ تر ترسیل کے اثرات کو کم کرنے کی کوشش کر رہا ہے، ملٹی کلسٹر-شیڈیولر زیادہ عام کاموں کو سنبھالتا ہے اور شاید بیچ کی ملازمتوں کے لیے بہتر موزوں ہے۔
اس میں بتدریج ڈیلیوری کا جدید طریقہ کار نہیں ہے۔
ملٹی کلسٹر شیڈیولر کے بارے میں مزید یہاں پر پایا جا سکتا ہے۔ سرکاری ذخیرہ کا صفحہ.
اگر آپ ایکشن میں ملٹی کلسٹر شیڈیولر کے بارے میں پڑھنا چاہتے ہیں تو ایڈمرلٹی کے پاس ہے۔ Argo کے ساتھ استعمال کا دلچسپ معاملہ - ورک فلو، ایونٹس، سی آئی اور سی ڈی کبرنیٹس۔
دوسرے ٹولز اور حل
متعدد کلسٹرز کو جوڑنا اور ان کا انتظام کرنا ایک پیچیدہ کام ہے، اور اس کا کوئی عالمگیر حل نہیں ہے۔
اگر آپ اس موضوع کو مزید دریافت کرنا چاہتے ہیں، تو یہاں کچھ وسائل ہیں:
رینچر کے ذریعہ آبدوز ایک ٹول ہے جو مختلف Kubernetes کلسٹرز کے اوورلے نیٹ ورکس کو جوڑتا ہے۔
Cilium، ایک کنٹینر نیٹ ورک انٹرفیس پلگ ان پیش کرتا ہے۔ کلسٹر میش فنکشن، جو آپ کو کئی کلسٹرز کو یکجا کرنے کی اجازت دیتا ہے۔
آج کیلئے بس اتنا ہی
آخر تک پڑھنے کے لیے آپ کا شکریہ!
اگر آپ جانتے ہیں کہ ایک سے زیادہ کلسٹرز کو زیادہ مؤثر طریقے سے کیسے جوڑنا ہے، ہمیں بتاو.
ہم آپ کا طریقہ لنکس میں شامل کریں گے۔
کرس نیسبٹ اسمتھ کا خصوصی شکریہ (کرس نیسبٹ اسمتھ) اور ونسنٹ ڈی سمی (ونسنٹ ڈی سمیٹ) (ریلیبلٹی انجینئر ان swatmobile.ioمضمون کو پڑھنے اور فیڈریشن کے کام کرنے کے بارے میں مفید معلومات شیئر کرنے کے لیے۔