کیا Kubernetes کلسٹر تیار کرنا آسان اور آسان ہے؟ ایڈون آپریٹر کا اعلان کرنا

کیا Kubernetes کلسٹر تیار کرنا آسان اور آسان ہے؟ ایڈون آپریٹر کا اعلان کرنا

کے بعد شیل آپریٹر ہم اس کے بڑے بھائی کو پیش کرتے ہیں - ایڈون آپریٹر. یہ ایک اوپن سورس پروجیکٹ ہے جو سسٹم کے اجزاء کو کبرنیٹس کلسٹر میں انسٹال کرنے کے لیے استعمال ہوتا ہے، جسے ایڈ آنز کہا جا سکتا ہے۔

کیوں کوئی اضافہ بالکل؟

یہ کوئی راز نہیں ہے کہ Kubernetes ایک ریڈی میڈ آل ان ون پروڈکٹ نہیں ہے، اور "بالغ" کلسٹر بنانے کے لیے آپ کو مختلف اضافے کی ضرورت ہوگی۔ ایڈون آپریٹر آپ کو ان ایڈ آنز کو انسٹال کرنے، ترتیب دینے اور اپ ٹو ڈیٹ رکھنے میں مدد کرے گا۔

کلسٹر میں اضافی اجزاء کی ضرورت کا انکشاف کیا گیا ہے۔ رپورٹ ساتھیوں ڈریشا. مختصراً، اس وقت کبرنیٹس کے ساتھ صورتحال ایسی ہے کہ ایک سادہ "پلے ارد گرد" انسٹالیشن کے لیے آپ اجزاء کو باکس سے باہر لے جا سکتے ہیں، ڈویلپرز اور ٹیسٹنگ کے لیے آپ Ingress شامل کر سکتے ہیں، لیکن مکمل انسٹالیشن کے لیے، جس کے بارے میں آپ کہہ سکتے ہیں کہ "آپ کی پروڈکشن تیار ہے"، آپ کو ایک درجن مختلف ایڈ آنز کے ساتھ شامل کرنے کی ضرورت ہے: کچھ مانیٹرنگ کے لیے، کچھ لاگنگ کے لیے، اندراج اور سرٹیفکیٹ مینیجر کو مت بھولنا، نوڈس کے گروپس کو منتخب کریں، نیٹ ورک کی پالیسیاں شامل کریں، سیزن sysctl اور pod autoscaler کی ترتیبات کے ساتھ...

کیا Kubernetes کلسٹر تیار کرنا آسان اور آسان ہے؟ ایڈون آپریٹر کا اعلان کرنا

ان کے ساتھ کام کرنے کی کیا خصوصیات ہیں؟

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

تو، شاید جواب کافی ہو گا یہاں؟ شاید. لیکن عام طور پر، مکمل ایڈ آن سیٹنگ کے بغیر نہیں رہتے. یہ ترتیبات کلسٹر ویرینٹ (aws, gce, azure, bare-metal, do, ...) کے لحاظ سے مختلف ہو سکتی ہیں۔ کچھ ترتیبات کی پہلے سے وضاحت نہیں کی جا سکتی؛ انہیں کلسٹر سے حاصل کرنا ضروری ہے۔ اور کلسٹر جامد نہیں ہے: کچھ سیٹنگز کے لیے آپ کو تبدیلیوں کی نگرانی کرنی ہوگی۔ اور یہاں Ansible پہلے سے غائب ہے: آپ کو ایک ایسے پروگرام کی ضرورت ہے جو کلسٹر میں رہتا ہو، یعنی Kubernetes آپریٹر۔

جنہوں نے اسے کام پر آزمایا شیل آپریٹر، وہ کہیں گے کہ ایڈ آنز اور مانیٹرنگ سیٹنگز کو انسٹال اور اپ ڈیٹ کرنے کے کاموں کو مکمل طور پر حل کیا جا سکتا ہے۔ ہکس شیل آپریٹر کے لیے۔ آپ ایک اسکرپٹ لکھ سکتے ہیں جو مشروط کرے گی۔ kubectl apply اور مانیٹر کریں، مثال کے طور پر، ConfigMap، جہاں ترتیبات کو محفوظ کیا جائے گا۔ یہ تقریبا وہی ہے جو ایڈون آپریٹر میں لاگو ہوتا ہے۔

یہ ایڈون آپریٹر میں کیسے منظم ہے؟

ایک نیا حل بناتے وقت، ہم نے مندرجہ ذیل اصولوں پر عمل کیا:

  • ایڈ آن انسٹالر کو سپورٹ کرنا چاہیے۔ ٹیمپلیٹنگ اور اعلانیہ ترتیب. ہم جادوئی اسکرپٹ نہیں بناتے ہیں جو ایڈ آنز انسٹال کرتے ہیں۔ ایڈون آپریٹر ایڈونز کو انسٹال کرنے کے لیے ہیلم کا استعمال کرتا ہے۔ انسٹال کرنے کے لیے، آپ کو ایک چارٹ بنانا ہوگا اور ان اقدار کو منتخب کرنا ہوگا جو کنفیگریشن کے لیے استعمال ہوں گی۔
  • ترتیبات ہوسکتی ہیں۔ تنصیب پر پیدا کریں، وہ ہو سکتے ہیں کلسٹر سے حاصل کریںیا اپ ڈیٹس حاصل کریں، کلسٹر وسائل کی نگرانی۔ یہ آپریشن ہکس کا استعمال کرتے ہوئے لاگو کیا جا سکتا ہے.
  • ترتیبات ہوسکتی ہیں۔ ایک کلسٹر میں اسٹور کریں. کلسٹر میں ترتیبات کو ذخیرہ کرنے کے لیے، ایک ConfigMap/addon-operator بنایا جاتا ہے اور Addon-operator اس ConfigMap میں ہونے والی تبدیلیوں کی نگرانی کرتا ہے۔ ایڈون آپریٹر آسان کنونشنز کا استعمال کرتے ہوئے ہکس کو ترتیبات تک رسائی فراہم کرتا ہے۔
  • اضافہ ترتیبات پر منحصر ہے۔. اگر سیٹنگز بدل گئی ہیں، تو ایڈون آپریٹر نئی اقدار کے ساتھ ہیلم چارٹ کو رول آؤٹ کرتا ہے۔ ہم نے ہیلم چارٹ کے امتزاج کو کہا، اس کے لیے اقدار اور ایک ماڈیول کو ہکس (مزید تفصیلات کے لیے نیچے دیکھیں)۔
  • سٹیجنگ. کوئی جادوئی ریلیز اسکرپٹس نہیں ہیں۔ اپ ڈیٹ کا طریقہ کار ایک باقاعدہ ایپلیکیشن کی طرح ہے - ایڈ آنز اور ایڈون آپریٹرز کو ایک تصویر میں جمع کریں، انہیں ٹیگ کریں اور رول آؤٹ کریں۔
  • نتیجہ کنٹرول. Addon-operator Prometheus کے لیے میٹرکس فراہم کر سکتا ہے۔

ایڈون آپریٹر میں پیڈنگ کیا ہے؟

ایک اضافے کو کسی بھی چیز پر غور کیا جاسکتا ہے جو کلسٹر میں نئے افعال کا اضافہ کرتا ہے۔ مثال کے طور پر، Ingress انسٹال کرنا ایڈ آن کی ایک بہترین مثال ہے۔ یہ کوئی بھی آپریٹر یا کنٹرولر ہو سکتا ہے جس کا اپنا CRD ہو: prometheus-operator، cert-manager، kube-controller-manager، وغیرہ۔ یا کوئی چھوٹی، لیکن استعمال میں آسان - مثال کے طور پر، خفیہ کاپیئر، جو رجسٹری کے راز کو نئے نام کی جگہوں پر کاپی کرتا ہے، یا sysctl tuner، جو نئے نوڈس پر sysctl پیرامیٹرز کو ترتیب دیتا ہے۔

ایڈونس کو لاگو کرنے کے لیے، ایڈون آپریٹر کئی تصورات فراہم کرتا ہے:

  • ہیلم چارٹ کلسٹر میں مختلف سافٹ ویئر انسٹال کرنے کے لیے استعمال کیا جاتا ہے - مثال کے طور پر، Prometheus، Grafana، nginx-ingress۔ اگر مطلوبہ جزو میں ہیلم چارٹ ہے، تو اسے Addon-operator کے ذریعے انسٹال کرنا بہت آسان ہوگا۔
  • قدروں کا ذخیرہ. ہیلم چارٹس میں عام طور پر بہت سی مختلف ترتیبات ہوتی ہیں جو وقت کے ساتھ بدل سکتی ہیں۔ ایڈون آپریٹر ان سیٹنگز کو اسٹور کرنے کی حمایت کرتا ہے اور ہیلم چارٹ کو نئی اقدار کے ساتھ دوبارہ انسٹال کرنے کے لیے ان کی تبدیلیوں کی نگرانی کر سکتا ہے۔
  • کانٹے ایگزیکیوٹیبل فائلز ہیں جو ایڈون آپریٹر ایونٹس پر چلاتی ہیں اور ویلیو اسٹور تک رسائی حاصل کرتی ہیں۔ ہک کلسٹر میں ہونے والی تبدیلیوں کی نگرانی کر سکتا ہے اور ویلیوز اسٹور میں موجود اقدار کو اپ ڈیٹ کر سکتا ہے۔ وہ. ہکس کا استعمال کرتے ہوئے، آپ سٹارٹ اپ کے وقت یا ایک شیڈول کے مطابق کلسٹر سے اقدار کو اکٹھا کرنے کے لیے دریافت کر سکتے ہیں، یا آپ مسلسل دریافت کر سکتے ہیں، کلسٹر میں ہونے والی تبدیلیوں کی بنیاد پر کلسٹر سے قدریں جمع کر سکتے ہیں۔
  • ماڈیول ہیلم چارٹ، ویلیو اسٹور اور ہکس کا مجموعہ ہے۔ ماڈیولز کو فعال یا غیر فعال کیا جا سکتا ہے۔ ماڈیول کو غیر فعال کرنے کا مطلب تمام ہیلم چارٹ ریلیز کو حذف کرنا ہے۔ ماڈیولز اپنے آپ کو متحرک طور پر فعال کر سکتے ہیں، مثال کے طور پر، اگر اس کی ضرورت کے تمام ماڈیولز کو فعال کر دیا گیا ہے یا اگر دریافت کو ہکس میں ضروری پیرامیٹرز مل گئے ہیں تو - یہ ایک معاون فعال اسکرپٹ کا استعمال کرتے ہوئے کیا جاتا ہے۔
  • عالمی ہکس. یہ "اپنے طور پر" ہکس ہیں، یہ ماڈیولز میں شامل نہیں ہیں اور ان کی عالمی قدروں کے اسٹور تک رسائی ہے، جن کی قدریں ماڈیول میں موجود تمام ہکس کے لیے دستیاب ہیں۔

یہ حصے ایک ساتھ کیسے کام کرتے ہیں؟ آئیے دستاویزات سے تصویر کو دیکھتے ہیں:

کیا Kubernetes کلسٹر تیار کرنا آسان اور آسان ہے؟ ایڈون آپریٹر کا اعلان کرنا

کام کے دو منظرنامے ہیں:

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

اضافے کو ایک سنگل ہک کے طور پر، یا ایک ہیلم چارٹ کے طور پر لاگو کیا جا سکتا ہے، یا یہاں تک کہ کئی منحصر ماڈیولز - یہ کلسٹر میں نصب ہونے والے اجزاء کی پیچیدگی اور ترتیب کی لچک کی مطلوبہ سطح پر منحصر ہے۔ مثال کے طور پر ذخیرہ میں (/مثالیں) ایک sysctl-tuner add-on ہے، جسے ہک اور ہیلم چارٹ کے ساتھ ایک سادہ ماڈیول کے طور پر، اور ویلیوز اسٹور کا استعمال کرتے ہوئے لاگو کیا جاتا ہے، جس سے ConfigMap میں ترمیم کرکے ترتیبات کو شامل کرنا ممکن ہوتا ہے۔

اپ ڈیٹس کی فراہمی

اجزاء کی تازہ کاریوں کو منظم کرنے کے بارے میں چند الفاظ جو Addon-operator انسٹال کرتا ہے۔

ایک کلسٹر میں ایڈون آپریٹر چلانے کے لیے، آپ کو ضرورت ہے۔ اضافہ کے ساتھ ایک تصویر بنائیں ہک اور ہیلم چارٹ فائلوں کی شکل میں، بائنری فائل شامل کریں۔ addon-operator اور ہر چیز جو آپ کو ہکس کے لئے درکار ہے: bash, kubectl, jq, python وغیرہ پھر اس تصویر کو ایک باقاعدہ ایپلیکیشن کے طور پر کلسٹر میں رول آؤٹ کیا جا سکتا ہے، اور غالباً آپ ایک یا دوسری ٹیگنگ سکیم کو منظم کرنا چاہیں گے۔ اگر چند کلسٹرز ہیں، تو وہی طریقہ اختیار کیا جا سکتا ہے جیسا کہ ایپلی کیشنز کے ساتھ ہے: نیا ریلیز، نیا ورژن، تمام کلسٹرز پر جائیں اور پوڈز کی تصویر کو درست کریں۔ تاہم، کلسٹرز کی ایک اہم تعداد میں رول آؤٹ کی صورت میں، چینل سے خود کو اپ ڈیٹ کرنے کا تصور ہمارے لیے زیادہ موزوں تھا۔

یہاں ہم اسے کیسے کرتے ہیں:

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

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

چینلز کی مدد اور جانچ میں: اگر کوئی معاون کلسٹر ہے، تو آپ اسے چینل پر ترتیب دے سکتے ہیں۔ stage اور اسے چینلز پر رول آؤٹ کرنے سے پہلے اس میں اپ ڈیٹس رول کریں۔ ea и stable. اگر چینل پر کلسٹر کے ساتھ ea ایک خرابی پیش آگئی، آپ اسے تبدیل کر سکتے ہیں۔ stableجبکہ اس کلسٹر کے مسئلے کی چھان بین کی جا رہی ہے۔ اگر کلسٹر کو فعال سپورٹ سے باہر لے جایا جاتا ہے، تو یہ اپنے "منجمد" چینل میں بدل جاتا ہے - مثال کے طور پر، freeze-2019-03-20.

ہکس اور ہیلم چارٹس کو اپ ڈیٹ کرنے کے علاوہ، آپ کو ضرورت ہو سکتی ہے۔ اپ ڈیٹ اور تھرڈ پارٹی جزو. مثال کے طور پر، آپ نے مشروط نوڈ ایکسپورٹر میں ایک بگ دیکھا اور یہاں تک کہ اسے پیچ کرنے کا طریقہ بھی معلوم کیا۔ اگلا، آپ نے PR کھولا اور تمام کلسٹرز سے گزرنے اور تصویر کے ورژن کو بڑھانے کے لیے نئی ریلیز کا انتظار کر رہے ہیں۔ غیر معینہ مدت تک انتظار نہ کرنے کے لیے، آپ اپنا نوڈ ایکسپورٹر بنا سکتے ہیں اور PR قبول کرنے سے پہلے اس پر جا سکتے ہیں۔

عام طور پر، یہ ایڈون آپریٹر کے بغیر کیا جا سکتا ہے، لیکن ایڈون آپریٹر کے ساتھ نوڈ-ایکسپورٹر کو انسٹال کرنے کا ماڈیول ایک ذخیرہ میں نظر آئے گا، آپ کی تصویر بنانے کے لیے ڈاکر فائل کو وہیں رکھا جا سکتا ہے، یہ تمام شرکاء کے لیے آسان ہو جاتا ہے۔ یہ سمجھنے کا عمل کہ کیا ہوتا ہے... اور اگر کئی کلسٹرز ہیں، تو آپ کے PR کی جانچ کرنا اور نیا ورژن تیار کرنا دونوں آسان ہو جاتے ہیں!

اجزاء کو اپ ڈیٹ کرنے کی یہ تنظیم ہمارے لیے کامیابی کے ساتھ کام کرتی ہے، لیکن کسی بھی دوسری مناسب اسکیم کو لاگو کیا جا سکتا ہے - آخر کار اس صورت میں Addon-operator ایک سادہ بائنری فائل ہے۔.

حاصل يہ ہوا

Addon-operator میں نافذ کردہ اصول آپ کو ایک کلسٹر میں ایڈ آنز بنانے، جانچنے، انسٹال کرنے اور اپ ڈیٹ کرنے کے لیے ایک شفاف عمل بنانے کی اجازت دیتے ہیں، جو کہ ریگولر ایپلی کیشنز کے ڈیولپمنٹ کے عمل کی طرح ہے۔

ایڈون آپریٹر کے لیے ماڈیول فارمیٹ (ہیلم چارٹ + ہکس) کے لیے ایڈ آن کو عوامی طور پر دستیاب کیا جا سکتا ہے۔ ہم، فلانٹ کمپنی، موسم گرما کے دوران اپنی پیش رفت کو اس طرح کے اضافے کی صورت میں شائع کرنے کا ارادہ رکھتے ہیں۔ GitHub پر ترقی میں شامل ہوں (شیل آپریٹر, ایڈون آپریٹر) کی بنیاد پر اپنا اضافہ کرنے کی کوشش کریں۔ مثالیں и دستاویزات، Habré اور ہماری خبروں کا انتظار کریں۔ یوٹیوب چینل!

PS

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

ماخذ: www.habr.com

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