Kubernetes میں رواداری اور داغ کیا ہیں؟
Kubernetes میں برداشت اور داغ کا استعمال اس بات کو یقینی بنانے کے لیے کیا جاتا ہے کہ پھلی صحیح نوڈ میں رکھی گئی ہیں۔ رواداری کی تعریف پوڈ کی تفصیلات میں کی گئی ہے جبکہ داغ کی وضاحت نوڈ کی تفصیلات میں کی گئی ہے۔ جب آپ پوڈ پر رواداری کا اطلاق کرتے ہیں، تو یہ شیڈیولر کو ایک مخصوص نوڈ پر پوڈ کو شیڈول کرنے کی اجازت دیتا ہے۔ تاہم، داغ رواداری کے برعکس کام کرتے ہیں۔ یہ نوڈ کو اس پر طے شدہ پوڈز کو مسترد کرنے کی اجازت دیتا ہے۔ پوڈز کو صرف نوڈ پر شیڈول کرنے کی اجازت ہے اگر ان پر مماثل داغوں کے ساتھ رواداری کا اطلاق ہوتا ہے۔
Kubernetes پوڈز، کلسٹرز، نوڈس، ایونٹس وغیرہ کے ساتھ کام کرتا ہے۔ بعض صورتوں میں، ان چیزوں کو منظم کرنے کے لیے، Kubernetes کو برداشت اور داغدار ہونے کی ضرورت ہوتی ہے۔ برداشت شیڈولنگ کے عمل کا نفاذ ہے۔ پھلیوں کو شیڈول کرنے کی ضرورت ہے تاکہ وہ صحیح طریقے سے کام کر سکیں اور جب ان کے آپریشن کو انجام دینے کی ضرورت ہو تو ان کے پاس کافی وسائل موجود ہوں۔ داغ کے خلاف پھلیوں پر برداشت کا اطلاق کیا جاتا ہے تاکہ کام کرتے وقت ان میں کوئی رکاوٹ یا خلل نہ ہو۔
Kubernetes میں موجود داغ ایک پوڈ کو پوڈ کے شیڈولنگ کو مسترد کرنے کے قابل بناتے ہیں۔ یہ 'NodeSpec' نوڈ تفصیلات کا استعمال کرتے ہوئے نوڈ پر لاگو کیا جاتا ہے. شیڈولر ایک نوڈ پر پوڈ لگانے سے قاصر ہے جس پر داغ ہے۔ تاہم، اگر آپ کو کسی ایسے نوڈ پر پوڈز کو شیڈول کرنے کی ضرورت ہے جہاں پہلے سے داغ لگا ہوا ہے، تو آپ کو اس کے خلاف برداشت کا اعلان کرنے کی ضرورت ہے۔
Kubernetes میں برداشت ایک پوڈ کو ایک نوڈ پر شیڈول کرنے کی اجازت دیتا ہے جہاں پہلے سے ہی داغ لگا ہوا ہے۔ پوڈ پر رواداری کا اطلاق 'PodSpec' Pod تفصیلات کا استعمال کرتے ہوئے کیا جاتا ہے۔ جب آپ مماثل داغ دار پوڈ پر رواداری کا اطلاق کرتے ہیں، تو شیڈیولر آسانی سے ایک مخصوص نوڈ پر پوڈ کو شیڈول کر سکتا ہے۔
اب، آئیے آپ کو یہ سمجھنے میں مدد کرنے کے لیے ایک منظر پیش کرتے ہیں کہ آپ کوبرنیٹس میں پوڈ پر رواداری کو کیسے نافذ کر سکتے ہیں۔ نفاذ کے سیکشن پر جانے سے پہلے، یقینی بنائیں کہ آپ کے پاس تمام ضروری تقاضے ہیں۔
شرط:
درج ذیل چیزیں ہیں جن کی آپ کو کبرنیٹس میں نوڈ پر رواداری کو لاگو کرنے کی ضرورت ہے۔
- Ubuntu 20.04 یا کسی بھی لینکس سسٹم کا کوئی دوسرا تازہ ترین ورژن
- Minikube (تازہ ترین ورژن)
- آپ کے لینکس/یونکس سسٹم میں ورچوئل مشین انسٹال ہے۔
- Kubectl کمانڈ لائن ٹول
یہ فرض کرتے ہوئے کہ آپ کا سسٹم شرائط کی تمام ضروریات کو پورا کرتا ہے، آئیے ہم Kubernetes رواداری کا تعین کرنا شروع کریں۔
مرحلہ 1: منی کیوب ٹرمینل شروع کریں۔
سب سے پہلے آپ کو منی کیوب ٹرمینل شروع کرنے کی ضرورت ہے تاکہ آپ نوڈ پر Kubernetes رواداری کے نفاذ کے لیے kubectl کمانڈز استعمال کر سکیں۔ minikube شروع کرنے کے لیے، درج ذیل کمانڈ استعمال کی جاتی ہے:
> منی کیوب شروع کریں۔اس کمانڈ پر عمل درآمد پر، آپ کو اپنے ٹرمینل میں درج ذیل آؤٹ پٹ ملے گا۔
مرحلہ 2: ایکٹو نوڈس کی فہرست حاصل کریں۔
اب جب کہ ہم نے minikube شروع کر دیا ہے، ہمارا سسٹم Kubernetes میں pods پر رواداری قائم کرنے کے لیے تیار ہے۔ اس سے پہلے کہ ہم پوڈز پر برداشت کا تعین کریں، آئیے چیک کریں کہ ہمارے پاس پہلے سے کتنے نوڈس اور کس قسم کے نوڈس ہیں۔ ایسا کرنے کے لیے، ہم مندرجہ ذیل کمانڈ استعمال کرتے ہیں:
> kubectl نوڈس حاصل کریں -دی =custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints [ * ] .key,TaintValue:.spec.taints [ * ] .value,TaintEffect:.spec.taints [ * ] اثراس ہدایت میں ان تمام نوڈس کی فہرست دی گئی ہے جو Kubernetes ڈیفالٹ انسٹالیشن سے داغدار ہیں۔ آئیے پہلے اس کمانڈ کا آؤٹ پٹ دیکھتے ہیں۔ پھر، ہم نوڈس کی فہرست پر تبادلہ خیال کرتے ہیں:
چونکہ کوئی نوڈس نہیں ہیں جو Kubernetes ڈیفالٹ انسٹالیشن کے ذریعہ بنائے گئے اور داغدار ہوئے ہیں اور ہم نے بھی خاص طور پر کوئی نوڈ نہیں بنایا، نتیجہ
مرحلہ 3: نام کی جگہ بنائیں
سب سے پہلے، ہم ایک ایپ کو کلسٹر پر تعینات کرنے کے لیے ایک نام کی جگہ بناتے ہیں۔ یہاں، ہم درج ذیل کمانڈ کی مدد سے 'فرنٹ اینڈ' ویلیو کے ساتھ ایک ایپ بناتے ہیں۔
> kubectl ns فرنٹ اینڈ بنائیںیہ کمانڈ نام کی جگہ بناتی ہے جس میں 'فرنٹ اینڈ' ویلیو ہوتی ہے۔ مندرجہ ذیل آؤٹ پٹ دیکھیں:
مرحلہ 4: Nginx Pod کو Namespace پر تعینات کریں۔
اب، nginx پوڈ کو اس نام کی جگہ پر تعینات کریں جو ہم نے ابھی بنایا ہے۔ ہم nginx کو تعینات کرنے کے لیے درج ذیل کمانڈ کا استعمال کرتے ہیں:
> kubectl رن nginx - تصویر =nginx -namespace فرنٹ اینڈیہ ایپ کی تعیناتی کی تفصیلات میں کوئی برداشت کنفیگریشن کے بغیر کلسٹر پر ایک ایپ تعینات کرتا ہے۔ kubectl کمانڈ کا استعمال کرتے ہوئے، ہم nginx pod کو نام کی جگہ کے فرنٹ اینڈ پر تعینات کرتے ہیں:
مرحلہ 5: پھلیوں کی فہرست حاصل کریں۔
اب، آئیے تخلیق شدہ پوڈز کو ان کے سٹیٹس دیکھنے کے لیے چیک کریں۔ دی گئی کمانڈ میں تمام پوڈز اور ان کے سٹیٹس کو بھی درج کیا گیا ہے:
> kubectl حاصل pods -n فرنٹ اینڈچونکہ ہم نے صرف nginx بنایا ہے، اس لیے اس کمانڈ کو اس پوڈ کو اس کی حیثیت کے ساتھ درج کرنا چاہیے۔ مندرجہ ذیل آؤٹ پٹ دیکھیں:
مرحلہ 6: Kubernetes واقعات کا تجزیہ کریں۔
اب، آئیے ہم کوبرنیٹس کے واقعات کا تجزیہ کرتے ہیں تاکہ ہم اس کے مطابق پوڈز پر برداشت کا تعین کر سکیں۔ ہم Kubernetes میں واقعات کی فہرست حاصل کرنے کے لیے درج ذیل kubectl کمانڈ استعمال کرتے ہیں۔
> kubectl واقعات حاصل کریں -n فرنٹ اینڈیہ ان تمام واقعات کو درج کرتا ہے جو فرنٹ اینڈ ویلیو کے ساتھ ان کی خصوصیات جیسے قسم، وجہ، آبجیکٹ اور پیغام سے وابستہ ہیں۔ درج ذیل آؤٹ پٹ میں دی گئی فہرست دیکھیں:
جیسا کہ آپ پچھلے آؤٹ پٹ سے دیکھ سکتے ہیں، nginx pod مخصوص رواداری کے ساتھ طے شدہ ہے۔ 'پیغام' کی خاصیت ان کارروائیوں کی فہرست دکھاتی ہے جو عمل کے ساتھ انجام دی جاتی ہیں۔
مرحلہ 7: پھلیوں کی حالت کو چیک کریں۔
آخری مرحلہ پوڈ کی حیثیت کو دوبارہ چیک کرنا ہے جسے ہم نے پہلے بنایا تھا تاکہ یہ یقینی بنایا جا سکے کہ یہ ایک مخصوص اور درست نوڈ پر کامیابی کے ساتھ طے شدہ ہے۔ ایسا کرنے کے لیے، ہم درج ذیل kubectl کمانڈ استعمال کرتے ہیں۔
> kubectl حاصل pods -n فرنٹ اینڈ
جیسا کہ پچھلے آؤٹ پٹ میں دیکھا جا سکتا ہے، اب پوڈ کو داغدار نوڈ پر چلنے کی اجازت ہے کیونکہ اس کے خلاف برداشت قائم ہے۔
نتیجہ
اس گائیڈ میں، ہم نے داغدار ہونے اور رواداری کے بارے میں دریافت کیا۔ ہم نے داغ اور برداشت کے بنیادی کام کے بارے میں سیکھا۔ پھر، ہم نے ایک پھلی پر رواداری کو نافذ کیا۔ ایک سادہ مثال کی مدد سے، ہم نے سیکھا کہ کبرنیٹس میں نوڈ پر رواداری کو کیسے ترتیب دیا جائے۔