کبرنیٹس میں سی آر ڈی کیسے بنائیں

Kbrny S My Sy Ar Y Kys Bnayy



آئیے اس مضمون میں کبرنیٹس میں CRD بنانا سیکھیں۔ اس ٹیوٹوریل میں، ہم آپ کی رہنمائی کریں گے کہ کس طرح Kubernetes میں CRD بنائیں اور پھر ایک Kubernetes کنٹرولر بنائیں جو CRD کی مثال تخلیق کی درخواستوں کو سنبھالنے کے لیے استعمال کیا جائے گا۔ ہم مثالوں کی مدد سے ہر قدم کا مظاہرہ کریں گے تاکہ آپ کو کوبرنیٹس میں CRD کو سنبھالنے کے لیے کنٹرولر آبجیکٹ کے ساتھ CRD بنانے کے کام کو مکمل طور پر سمجھنے میں مدد ملے۔ تو آئیے شروع کریں!

Kubernetes میں CRD کیا ہے؟

CRD کا مطلب ہے کسی اور API سرور کو شامل کیے بغیر نئے وسائل کے لیے استعمال ہونے والی کسٹم ریسورس ڈیفینیشن۔ CRDs کے ساتھ کام کرنے کے لیے، آپ کو API کی جمع کو سمجھنے کی ضرورت نہیں ہے۔ یہ ایک بہت ہی طاقتور خصوصیت ہے جسے Kubernetes 1.7 میں متعارف کرایا گیا ہے جسے مختلف اندرونی وسائل اور API اشیاء کے ساتھ بھیج دیا جائے گا۔ یہ آپ کو اپنی پسند کے اسکیما اور نام کے ساتھ حسب ضرورت وسائل کی وضاحت کرنے کی اجازت دیتا ہے۔

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







شرط

اس سے پہلے کہ ہم CRD بنانے اور حذف کرنے کے مراحل کی طرف بڑھیں، آئیے اس بات کو یقینی بنائیں کہ ہمارا نظام تمام شرائط کی ضروریات کو پورا کرتا ہے۔



  • Ubuntu 20.04 یا کوئی دوسرا تازہ ترین ورژن جس میں کام کرنے کے لیے لینکس/یونکس ماحول ہو۔
  • Kubernetes کلسٹر۔
  • Kubectl CLI kubectl کمانڈز، کلسٹر کمیونیکیشن، اور ترقیاتی ماحول کو منظم کرنے کے لیے۔
  • کلسٹرز بنانے کے لیے minikube یا کوئی اور Kubernetes کھیل کا میدان

ان ٹولز کو انسٹال کریں، اگر آپ نے انہیں ابھی تک انسٹال نہیں کیا ہے، اگلے سیکشن پر جانے سے پہلے۔



اب، ہم قدم بہ قدم گائیڈ پر جائیں گے کہ کبرنیٹس میں CRDs کیسے بنائیں۔





مرحلہ نمبر 1: Kubernetes شروع کریں۔

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

> منی کیوب شروع کریں۔

جب آپ اس کمانڈ پر عمل کرتے ہیں، تو آپ کو نیچے دیے گئے ایک جیسا آؤٹ پٹ ملے گا۔



مرحلہ نمبر 2: کنفیگریشن فائل کھولیں یا بنائیں

اب جب کہ ہمارا منی کیوب تیار اور چل رہا ہے، آئیے کنفیگریشن فائل کو کھولتے ہیں۔ 'نینو' کمانڈ کا استعمال کنفیگریشن فائلوں کو کھولنے کے لیے کیا جاتا ہے۔ آپ کو بس نینو کمانڈ کے ساتھ فائل کا نام فراہم کرنے کی ضرورت ہے جس کے بعد فائل ایکسٹینشن اور انٹر دبائیں۔ یہاں، ہمارے پاس 'red.yaml' فائل ہے جس میں CRDs بنانے کے لیے کنفیگریشن کی تفصیلات شامل ہیں۔ یہاں مکمل نینو کمانڈ ہے جسے آپ اپنی مطلوبہ فائل کو کھولنے کے لیے استعمال کر سکتے ہیں۔

> نینو red.yaml

جب آپ اس کمانڈ پر عمل کرتے ہیں تو درج ذیل فائل آپ کے ٹرمینل میں کھل جائے گی۔

مرحلہ نمبر 3: ایک اختتامی وسیلہ بنائیں

ترتیب کے وسائل کو red.yaml میں محفوظ کیا گیا ہے۔ ہم اسے نئے نام کی جگہ پر RESTful API اینڈ پوائنٹ بنانے کے لیے استعمال کریں گے۔ Kubectl ایک کنفیگریشن فائل سے اینڈ پوائنٹ بنانے کے لیے 'apply' کمانڈ فراہم کرتا ہے۔ یہاں مکمل 'apply' کمانڈ ہے جو نئے نام کی جگہ پر RESTful API بنانے کے لیے استعمال ہوتی ہے۔

> kubectl لاگو کریں -f red.yaml

اس کمانڈ کے ذریعہ تخلیق کردہ اختتامی نقطہ اپنی مرضی کے مطابق آبجیکٹ بنانے کے لیے استعمال کیا جائے گا جو CRD کو کنٹرول کرے گا۔ نام کی جگہ والے وسائل کے لیے درج ذیل آؤٹ پٹ تیار کیا جائے گا:

مرحلہ نمبر 4: CRD کو کنٹرول کرنے کے لیے اپنی مرضی کے مطابق آبجیکٹ بنائیں

CRDs کو حسب ضرورت اشیاء کے ذریعے کنٹرول کیا جاتا ہے۔ حسب ضرورت وسائل کی تعریف تیار ہونے کے بعد ہم انہیں بنا سکتے ہیں۔ کسٹم آبجیکٹ میں صوابدیدی JSON کے کسٹم فیلڈز ہوتے ہیں۔ اپنی مرضی کے مطابق آبجیکٹ بنانے کے لیے، ہمیں دوبارہ YAML کنفیگریشن فائل کی ضرورت ہے۔ YAML کنفیگریشن فائل بنانے کے لیے 'نانو' کمانڈ استعمال کریں:

> نینو ct.yaml

YAML فائل میں مخصوص تفصیلات کے ساتھ مطلوبہ فیلڈز کو محفوظ کریں۔ نمونے کی ترتیب کی تفصیلات ذیل کے نمونے میں دکھائی گئی ہیں:

اب، اسی YAML فائل کو کسٹم آبجیکٹ بنانے کے لیے استعمال کریں۔ مخصوص YAML فائل سے کسٹم آبجیکٹ بنانے کے لیے 'apply' کمانڈ استعمال کریں۔ ذیل میں دی گئی مکمل کمانڈ دیکھیں:

> kubectl لاگو کریں -f ct.yaml

اس کمانڈ کے کامیاب نفاذ پر، آپ کو درج ذیل آؤٹ پٹ ملے گا۔

مرحلہ نمبر 5: اپنی مرضی کے آبجیکٹ کے ساتھ CRD کا نظم کریں۔

CRDs کو منظم کرنے کے لیے حسب ضرورت اشیاء کا استعمال کیا جاتا ہے۔ تو، آئیے سیکھتے ہیں کہ ہم پہلے سے بنائے گئے CRD کو منظم کرنے کے لیے حال ہی میں بنائے گئے کسٹم آبجیکٹ کو کیسے استعمال کر سکتے ہیں۔ یہاں، ہم 'get' کمانڈ کا استعمال کرکے اپنی مرضی کے مطابق آبجیکٹ پر مشتمل تفصیلات کو چیک کرنے جا رہے ہیں۔ ذیل میں کوڈ کے ٹکڑوں میں دی گئی کمانڈ دیکھیں:

> kubectl حاصل کرونٹاب

جب آپ اس کمانڈ کو منی کیوب ٹرمینل میں چلاتے ہیں، تو درج ذیل آؤٹ پٹ تیار ہو جائے گا:

اگر آپ YAML فائل میں موجود خام ڈیٹا کو چیک کرنا چاہتے ہیں، تو آپ یہ کمانڈ استعمال کر سکتے ہیں:

> kubectl حاصل کریں ct -دی یامل

یہ YAML فائل میں خام ڈیٹا دکھائے گا جیسا کہ ذیل میں دیا گیا نمونہ:

اس طرح ہم CRD اور تخلیق شدہ CRD کو منظم اور کنٹرول کرنے کے لیے ایک حسب ضرورت آبجیکٹ بنا سکتے ہیں۔ اب، اگر آپ تخلیق کردہ CRD کو حذف کرنا چاہتے ہیں، تو آپ نیچے دیئے گئے طریقہ کار پر عمل کر سکتے ہیں۔

Kubernetes میں تخلیق کردہ CRDs کو کیسے حذف کریں؟

kubectl کمانڈز آپ کو Kubernetes میں CRDs کو حذف کرنے کی اجازت دیتے ہیں۔ جب آپ Kubernetes میں CRD کو حذف کرنے کی کوشش کرتے ہیں، تو اس سے وابستہ حسب ضرورت وسائل کو بھی حذف کر دیا جائے گا۔ kubectl کسی بھی وسائل کو حذف کرنے کے لیے 'delete' کمانڈ فراہم کرتا ہے۔ نیچے دی گئی کمانڈ CRD کو حذف کرنے کے لیے استعمال ہوتی ہے جسے ہم نے اوپر کے مراحل میں بنایا ہے۔

> kubectl حذف کریں -f red.yaml

اس کمانڈ کے کامیاب نفاذ پر، آپ کو درج ذیل نتیجہ ملے گا:

اب جب کہ CRD اور اس سے منسلک اپنی مرضی کی اشیاء کو حذف کر دیا گیا ہے، اگر آپ اس تک رسائی حاصل کرنے کی کوشش کریں گے تو آپ کو سرور سے ایک ایرر ملے گا۔ نیچے دی گئی کمانڈ کو دیکھیں جہاں ہم نام کی جگہ والے RESTful API تک رسائی حاصل کرنے کی کوشش کر رہے ہیں:

> kubeclt crontabs حاصل کریں

چونکہ 'کرون ٹیبز' کو حذف کر دیا گیا ہے، سرور اس کارروائی کے لیے غلطی کو بڑھا دے گا۔ ذیل میں دی گئی اس کمانڈ کی آؤٹ پٹ دیکھیں:

نتیجہ

یہ مضمون اس بات کا ایک فوری جائزہ تھا کہ کس طرح حسب ضرورت وسائل کی تعریف کیسے بنائی جائے، CRDs کو کنٹرول کرنے کے لیے ایک کسٹم آبجیکٹ کیسے بنایا جائے، اور کبرنیٹس سے CRD کو کیسے حذف کیا جائے۔ نمونے کی مثالوں کی مدد سے، ہم نے آپ کو اس عمل کو آسانی سے اور تیزی سے سمجھنے میں مدد کرنے کے لیے ہر قدم کا مظاہرہ کیا۔