Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

نوٹ. ترجمہ: اصل مواد کے مصنف زلینڈو سے تعلق رکھنے والے ہیننگ جیکبز ہیں۔ اس نے Kubernetes کے ساتھ کام کرنے کے لیے ایک نیا ویب انٹرفیس بنایا، جسے "ویب کے لیے kubectl" کے طور پر رکھا گیا ہے۔ ایک نیا اوپن سورس پروجیکٹ کیوں ظاہر ہوا اور موجودہ حل کے ذریعہ کون سے معیارات پورے نہیں ہوئے - اس کا مضمون پڑھیں۔

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

اس پوسٹ میں، میں مختلف اوپن سورس Kubernetes ویب انٹرفیس کا جائزہ لیتا ہوں، ایک عالمگیر UI کے لیے اپنی ضروریات بیان کرتا ہوں، اور وضاحت کرتا ہوں کہ میں نے کیوں ترقی کی۔ Kubernetes WebView - ایک انٹرفیس جس کو ایک ہی وقت میں متعدد کلسٹروں کی مدد اور ٹربل شوٹ کرنا آسان بنانے کے لیے ڈیزائن کیا گیا ہے۔

کیسز استعمال کریں۔

Zalando میں ہم Kubernetes صارفین کی ایک بڑی تعداد (900+) اور کلسٹرز (100+) کی خدمت کرتے ہیں۔ عام استعمال کے کچھ معاملات ہیں جو ایک سرشار ویب ٹول سے فائدہ اٹھائیں گے:

  1. مدد کے لیے ساتھیوں کے ساتھ مواصلت؛
  2. واقعات کا جواب دینا اور ان کی وجوہات کی تحقیقات کرنا۔

معاونت

میرے تجربے میں، سپورٹ مواصلات اکثر اس طرح نظر آتے ہیں:

— مدد، ہماری سروس XYZ دستیاب نہیں ہے!
- جب آپ پرفارم کرتے ہیں تو آپ کیا دیکھتے ہیں۔ kubectl describe ingress ...?

یا کچھ ایسا ہی CRD کے لیے:

— مجھے شناختی سروس کے ساتھ کچھ مسئلہ ہے...
- کمانڈ کیا پیدا کرتا ہے؟ kubectl describe platformcredentialsset ...?

اس طرح کی مواصلت عام طور پر کمانڈ کی مختلف حالتوں میں داخل ہونے پر آتی ہے۔ kubectl مسئلہ کی نشاندہی کرنے کے لئے. نتیجے کے طور پر، بات چیت کے دونوں فریق ٹرمینل اور ویب چیٹ کے درمیان مسلسل سوئچ کرنے پر مجبور ہیں، نیز وہ ایک مختلف صورتحال کا مشاہدہ کرتے ہیں۔

لہذا، میں چاہتا ہوں کہ Kubernetes ویب فرنٹ اینڈ مندرجہ ذیل کی اجازت دے:

  • صارفین کر سکتے ہیں تبادلے کے لنکس اور اسی چیز کا مشاہدہ کریں؛
  • مدد کرے گا انسانی غلطیوں سے بچیں سپورٹ میں: مثال کے طور پر، کمانڈ لائن پر غلط کلسٹر میں لاگ ان کرنا، CLI کمانڈز میں ٹائپ کی غلطی، وغیرہ؛
  • اجازت دے گا اپنے خیالات پیدا کریں۔ ساتھیوں کو بھیجنا، یعنی ٹیگز کے کالم شامل کرنا، ایک صفحے پر کئی قسم کے وسائل دکھانا؛
  • مثالی طور پر، یہ ویب ٹول آپ کو سیٹ کرنے کی اجازت دیتا ہے۔ YAML کے مخصوص حصوں سے "گہرے" لنکس (مثال کے طور پر، ایک غلط پیرامیٹر کی نشاندہی کرنا جو ناکامیوں کا سبب بن رہا ہے)۔

واقعہ کا جواب اور تجزیہ

بنیادی ڈھانچے کے واقعات کا جواب دینے کے لیے حالات سے متعلق آگاہی، اثرات کا اندازہ لگانے کی صلاحیت اور کلسٹرز میں پیٹرن تلاش کرنے کی ضرورت ہوتی ہے۔ کچھ حقیقی زندگی کی مثالیں:

  • ایک اہم پروڈکشن سروس میں مسائل ہیں اور آپ کو اس کی ضرورت ہے۔ تمام کلسٹرز میں نام کے ساتھ تمام Kubernetes وسائل تلاش کریں۔خرابیوں کو دور کرنے کے لئے؛
  • نوڈس گرنے لگتے ہیں جب اسکیلنگ ہوتی ہے اور آپ کو ضرورت ہوتی ہے۔ تمام کلسٹرز میں "زیر التواء" کی حیثیت کے ساتھ تمام پوڈز تلاش کریں۔مسئلہ کے دائرہ کار کا اندازہ کرنے کے لئے؛
  • انفرادی صارفین تمام کلسٹرز میں تعینات ڈیمون سیٹ کے ساتھ کسی مسئلے کی اطلاع دے رہے ہیں اور اس کا پتہ لگانے کی ضرورت ہے کیا مسئلہ کل ہے؟.

ایسے معاملات میں میرا معیاری حل کچھ یوں ہے۔ for i in $clusters; do kubectl ...; done. ظاہر ہے، ایک ایسا آلہ تیار کیا جا سکتا ہے جو اسی طرح کی صلاحیتوں کو فراہم کرتا ہے.

موجودہ Kubernetes ویب انٹرفیس

Kubernetes کے لیے ویب انٹرفیس کی اوپن سورس دنیا بہت بڑی نہیں ہے*، اس لیے میں نے اس کا استعمال کرتے ہوئے مزید معلومات اکٹھی کرنے کی کوشش کی ٹویٹر:

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

*کوبرنیٹس کے لیے محدود تعداد میں ویب انٹرفیس کے لیے میری وضاحت: کلاؤڈ سروسز اور کبرنیٹس وینڈرز عام طور پر اپنے فرنٹ اینڈ پیش کرتے ہیں، اس لیے "اچھے" مفت Kubernetes UI کا بازار نسبتاً چھوٹا ہے۔

ایک ٹویٹ کے ذریعے مجھے معلوم ہوا۔ K8Dash, کبرنیٹر и اوکٹنٹ. آئیے ان اور دیگر موجودہ اوپن سورس حلوں کو دیکھتے ہیں، آئیے یہ سمجھنے کی کوشش کرتے ہیں کہ وہ کیا ہیں۔

K8Dash

"K8Dash ایک Kubernetes کلسٹر کو منظم کرنے کا آسان ترین طریقہ ہے۔"

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

K8Dash اچھی لگتی ہے اور تیز محسوس ہوتی ہے، لیکن اوپر درج استعمال کے معاملات کے لیے اس کے بہت سے نقصانات ہیں:

  • صرف ایک کلسٹر کی حدود میں کام کرتا ہے۔
  • چھانٹنا اور فلٹر کرنا ممکن ہے، لیکن پرمالنک نہیں ہے۔
  • کسٹم ریسورس ڈیفینیشنز (CRDs) کے لیے کوئی تعاون نہیں ہے۔

کبرنیٹر

"Kubernator Kubernetes کے لیے ایک متبادل UI ہے۔ اعلیٰ سطح کے Kubernetes ڈیش بورڈ کے برعکس، یہ کلسٹر میں موجود تمام اشیاء میں نچلی سطح کا کنٹرول اور بہترین مرئیت فراہم کرتا ہے جس میں نئی ​​چیزیں بنانے، ان میں ترمیم کرنے اور تنازعات کو حل کرنے کی صلاحیت ہے۔ مکمل طور پر کلائنٹ سائڈ ایپلی کیشن (جیسے kubectl) ہونے کے ناطے، اسے خود Kubernetes API سرور کے علاوہ کسی اور بیک اینڈ کی ضرورت نہیں ہے، اور یہ کلسٹر تک رسائی کے قوانین کا بھی احترام کرتا ہے۔"

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

یہ کافی درست وضاحت ہے۔ کبرنیٹر. بدقسمتی سے، اس میں کچھ خصوصیات کا فقدان ہے:

  • صرف ایک کلسٹر کی خدمت کرتا ہے۔
  • کوئی لسٹ ویو موڈ نہیں ہے (یعنی، آپ تمام پوڈز کو "پینڈنگ" اسٹیٹس کے ساتھ نہیں دکھا سکتے ہیں)۔

کبرنیٹس ڈیش بورڈ

"Kubernetes ڈیش بورڈ Kubernetes کلسٹرز کے لیے ایک عالمگیر ویب انٹرفیس ہے۔ یہ صارفین کو کلسٹر میں چلنے والی ایپلیکیشنز کو منظم کرنے اور ان کا ازالہ کرنے کے ساتھ ساتھ خود کلسٹر کا نظم کرنے کی اجازت دیتا ہے۔

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

بدقسمتی سے کبرنیٹس ڈیش بورڈ واقعی میری مدد اور واقعہ کے ردعمل کی سرگرمیوں میں مدد نہیں کرتا کیونکہ یہ:

  • کوئی مستقل روابط نہیں ہیں، مثال کے طور پر جب میں وسائل کو فلٹر کرتا ہوں یا ترتیب کی ترتیب کو تبدیل کرتا ہوں۔
  • اسٹیٹس کے لحاظ سے فلٹر کرنے کا کوئی آسان طریقہ نہیں ہے - مثال کے طور پر، "زیر التواء" اسٹیٹس والے تمام پوڈز دیکھیں؛
  • صرف ایک کلسٹر سپورٹ ہے؛
  • CRDs تعاون یافتہ نہیں ہیں (یہ خصوصیت تیار کی جارہی ہے)؛
  • کوئی حسب ضرورت کالم نہیں (مثال کے طور پر، قسم کے لیبل والے کالم kubectl -L).

Kubernetes آپریشنل ویو (kube-ops-view)

"K8s کلسٹر اسپیس کے لیے سسٹم ڈیش بورڈ آبزرور۔"

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

У کوبرنیٹس آپریشنل ویو ایک بالکل مختلف نقطہ نظر: یہ ٹول ویب جی ایل کا استعمال کرتے ہوئے صرف کلسٹر نوڈس اور پوڈ دکھاتا ہے، بغیر کسی متنی آبجیکٹ کے۔ یہ کلسٹر کی صحت کے فوری جائزہ کے لیے بہت اچھا ہے (کیا پوڈز گر رہے ہیں؟)*، لیکن یہ اوپر بیان کردہ سپورٹ اور واقعے کے ردعمل کے استعمال کے کیسز کے لیے موزوں نہیں ہے۔

* نوٹ. ترجمہ: اس لحاظ سے، آپ ہمارے پلگ ان میں بھی دلچسپی لے سکتے ہیں۔ grafana-statusmapجس کے بارے میں ہم نے مزید تفصیل سے بات کی ہے۔ یہ مضمون.

Kubernetes ریسورس رپورٹ (kube-resource-report)

"پوڈ اور کوبرنیٹس کلسٹر وسائل کی درخواستیں جمع کریں، ان کا وسائل کی کھپت سے موازنہ کریں، اور جامد HTML بنائیں۔"

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

Kubernetes وسائل کی رپورٹ کلسٹرز میں ٹیموں/ایپلی کیشنز میں وسائل کے استعمال اور لاگت کی تقسیم سے متعلق جامد HTML رپورٹس تیار کرتا ہے۔ رپورٹ سپورٹ اور واقعے کے ردعمل کے لیے کسی حد تک مفید ہے کیونکہ یہ آپ کو تیزی سے اس کلسٹر کو تلاش کرنے کی اجازت دیتی ہے جہاں ایپلیکیشن تعینات ہے۔

نوٹ. ترجمہ: ایک سروس اور ٹول کلاؤڈ فراہم کنندگان کے درمیان وسائل کی تقسیم اور ان کے اخراجات کے بارے میں معلومات دیکھنے میں بھی کارآمد ہو سکتا ہے۔ کیوبکوسٹجس کا ہم جائزہ لیتے ہیں۔ حال ہی میں شائع.

اوکٹنٹ

"ڈویلپرز کے لیے ایک قابل توسیع ویب پلیٹ فارم جسے Kubernetes کلسٹرز کی پیچیدگی کی زیادہ سے زیادہ تفہیم فراہم کرنے کے لیے ڈیزائن کیا گیا ہے۔"

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

اوکٹنٹVMware کے ذریعہ تخلیق کیا گیا، ایک نئی پروڈکٹ ہے جس کے بارے میں میں نے حال ہی میں سیکھا ہے۔ اس کی مدد سے، مقامی مشین پر کلسٹر کو تلاش کرنا آسان ہے (یہاں تک کہ تصورات بھی ہیں)، لیکن یہ مدد اور واقعے کے ردعمل کے مسائل کو صرف ایک محدود حد تک حل کرتا ہے۔ اوکٹنٹ کے نقصانات:

  • کوئی کلسٹر تلاش نہیں۔
  • صرف مقامی مشین پر کام کرتا ہے (کلسٹر میں تعینات نہیں ہوتا ہے)۔
  • اشیاء کو ترتیب/فلٹر نہیں کیا جا سکتا (صرف لیبل سلیکٹر تعاون یافتہ ہے)۔
  • آپ حسب ضرورت کالم نہیں بتا سکتے۔
  • آپ نام کی جگہ کے ذریعہ اشیاء کی فہرست نہیں دے سکتے ہیں۔

مجھے Zalando کلسٹرز کے ساتھ Octant کے استحکام میں بھی دشواری تھی: کچھ CRDs پر وہ گر رہا تھا.

Kubernetes Web View متعارف کروا رہا ہے۔

"ویب کے لئے کیوبیکٹل"۔

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)

Kubernetes کے لیے دستیاب انٹرفیس کے اختیارات کا تجزیہ کرنے کے بعد، میں نے ایک نیا بنانے کا فیصلہ کیا: Kubernetes WebView. سب کے بعد، حقیقت میں، مجھے صرف تمام طاقت کی ضرورت ہے kubectl ویب پر، یعنی:

  • تمام (صرف پڑھنے کے لیے) آپریشنز کی دستیابی جس کے لیے صارفین kubectl استعمال کرنے کو ترجیح دیتے ہیں۔
  • تمام URLs کو مستقل ہونا چاہیے اور صفحہ کو اس کی اصل شکل میں پیش کرنا چاہیے تاکہ ساتھی ان کا اشتراک کر سکیں اور دوسرے ٹولز میں استعمال کر سکیں؛
  • تمام Kubernetes اشیاء کے لیے سپورٹ، جو آپ کو کسی بھی قسم کا مسئلہ حل کرنے کی اجازت دے گا۔
  • وسائل کی فہرستیں مزید کام کے لیے ڈاؤن لوڈ کے قابل ہونی چاہئیں (اسپریڈشیٹ میں، CLI ٹولز جیسے grep) اور ذخیرہ (مثال کے طور پر، پوسٹ مارٹم کے لیے)؛
  • لیبل کے ذریعہ وسائل کے انتخاب کے لئے معاونت (کی طرح kubectl get .. -l);
  • مختلف اقسام کے وسائل کی مشترکہ فہرستیں بنانے کی صلاحیت (مماثل kubectl get all) ساتھیوں کے درمیان مشترکہ آپریشنل تصویر حاصل کرنے کے لیے (مثال کے طور پر، واقعے کے ردعمل کے دوران)؛
  • دوسرے ٹولز جیسے ڈیش بورڈز، لاگرز، ایپلیکیشن رجسٹریز وغیرہ میں حسب ضرورت سمارٹ ڈیپ لنکس شامل کرنے کی صلاحیت۔ خرابیوں کا سراغ لگانے/حل کرنے اور واقعات کا جواب دینے میں سہولت فراہم کرنے کے لیے؛
  • بے ترتیب مسائل، جیسے منجمد جاوا اسکرپٹ سے بچنے کے لیے فرنٹ اینڈ ہر ممکن حد تک آسان (خالص HTML) ہونا چاہیے۔
  • ریموٹ کنسلٹنگ کے دوران تعامل کو آسان بنانے کے لیے متعدد کلسٹرز کے لیے سپورٹ (مثال کے طور پر، صرف ایک URL یاد رکھنا)؛
  • اگر ممکن ہو تو، حالات کے تجزیہ کو آسان بنایا جانا چاہیے (مثال کے طور پر، تمام کلسٹرز/نیم اسپیسز کے لیے وسائل کو ڈاؤن لوڈ کرنے کے لنکس کے ساتھ)؛
  • لچکدار لنکس بنانے اور متن کی معلومات کو نمایاں کرنے کے اضافی مواقع، مثال کے طور پر، تاکہ آپ اپنے ساتھیوں کو وسائل کی تفصیل میں ایک مخصوص حصے کی طرف اشارہ کر سکیں (YAML میں ایک لائن)؛
  • کسی مخصوص کلائنٹ کی ضروریات کو اپنی مرضی کے مطابق کرنے کی صلاحیت، مثال کے طور پر، آپ کو CRDs کے لیے خصوصی ڈسپلے ٹیمپلیٹس بنانے، آپ کے اپنے ٹیبل کے نظارے، اور CSS کے انداز کو تبدیل کرنے کی اجازت؛
  • کمانڈ لائن پر مزید ایکسپلوریشن کے لیے ٹولز (مثال کے طور پر، مکمل کمانڈ دکھانا kubectlکاپی کرنے کے لیے تیار)

Kubernetes Web View میں حل کیے گئے کاموں کے علاوہ (غیر گول) رہ گیا:

  • Kubernetes اشیاء کا خلاصہ؛
  • ایپلیکیشن مینجمنٹ (مثال کے طور پر، تعیناتی کا انتظام، ہیلم چارٹس، وغیرہ)؛
  • تحریری کارروائیاں (محفوظ CI/CD اور/یا GitOps ٹولز کے ذریعے ہونی چاہئیں)؛
  • خوبصورت انٹرفیس (جاوا اسکرپٹ، تھیمز وغیرہ)؛
  • تصور (دیکھیں۔ kube-ops-view);
  • لاگت کا تجزیہ (دیکھیں۔ kube-resource-report).

کبرنیٹس ویب ویو سپورٹ اور واقعے کے ردعمل میں کس طرح مدد کرتا ہے؟

معاونت

  • تمام روابط مستقل ہیں۔، جو ساتھیوں کے ساتھ معلومات کا تبادلہ آسان بناتا ہے۔
  • آپ تشکیل دے سکتے ہیں۔ آپ کے خیالاتمثال کے طور پر، تمام تعیناتیوں اور پوڈز کو ایک مخصوص لیبل کے ساتھ دو مخصوص کلسٹرز میں دکھائیں (کئی کلسٹر کے نام اور وسائل کی اقسام کو کوما سے الگ کرکے لنک میں بیان کیا جا سکتا ہے)۔
  • آپ حوالہ دے سکتے ہیں۔ YAML فائل میں مخصوص لائنیں۔ آبجیکٹ، آبجیکٹ کی تفصیلات میں ممکنہ مسائل کی نشاندہی کرتا ہے۔

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)
Kubernetes Web View میں کلسٹرز کے ذریعے تلاش کریں۔

واقعہ کا جواب

  • عالمی تلاش (عالمی تلاش) آپ کو تمام کلسٹرز میں اشیاء تلاش کرنے کی اجازت دیتا ہے۔
  • فہرست کے مناظر تمام کلسٹرز میں ایک مخصوص حالت/کالم کے ساتھ تمام اشیاء کو ظاہر کر سکتا ہے (مثال کے طور پر، ہمیں تمام پوڈز کو "پینڈنگ" اسٹیٹس کے ساتھ تلاش کرنے کی ضرورت ہے)۔
  • اشیاء کی فہرستیں ڈاؤن لوڈ کی جا سکتی ہیں۔ بعد میں تجزیہ کے لیے ٹیب سے الگ کردہ قدر (TSV) فارمیٹ میں۔
  • مرضی کے مطابق بیرونی روابط آپ کو متعلقہ ڈیش بورڈز اور دیگر ٹولز پر سوئچ کرنے کی اجازت دیتا ہے۔

Kubernetes ویب ویو کا اعلان (اور Kubernetes کے لیے دیگر ویب UIs کا ایک مختصر جائزہ)
Kubernetes Web View: تمام کلسٹرز میں "پینڈنگ" اسٹیٹس کے ساتھ پوڈز کی فہرست

اگر آپ Kubernetes Web View آزمانا چاہتے ہیں، تو میں چیک آؤٹ کرنے کی تجویز کرتا ہوں۔ دستاویزات یا دیکھو لائیو ڈیمو.

بلاشبہ، انٹرفیس بہتر ہو سکتا ہے، لیکن فی الحال Kubernetes Web View "جدید صارفین" کے لیے ایک ٹول ہے جو اگر ضروری ہو تو دستی طور پر یو آر ایل کے راستوں کو جوڑنے سے باز نہیں آتے۔ اگر آپ کے پاس کوئی تبصرہ/اضافہ/مشورہ ہے تو براہ کرم رابطہ کریں۔ ٹویٹر پر میرے ساتھ!

یہ مضمون اس پس منظر کی ایک مختصر تاریخ ہے جس کی وجہ سے Kubernetes Web View کی تخلیق ہوئی۔ مزید پیروی کریں گے! (نوٹ. ترجمہ: ان سے توقع کی جانی چاہئے۔ مصنف کا بلاگ.)

PS مترجم کی طرف سے

ہمارے بلاگ پر بھی پڑھیں:

ماخذ: www.habr.com

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