کبرنیٹس نوڈ سلیکٹر کا استعمال کیسے کریں۔

Kbrny S Nw Slyk R Ka Ast Mal Kys Kry



Kubernetes کلسٹر مختلف نوڈ پولز پر کام کے بوجھ کو الگ کرنے اور شیڈول کرنے کے لیے شیڈولنگ کی رکاوٹوں کا استعمال کرتا ہے جیسے: داغدار، لیبل، برداشت، اور نوڈ سلیکٹر۔ بنیادی ڈھانچے کے انتظام کے لیے Kubernetes میں شیڈولنگ کی رکاوٹیں ایک عام ضرورت ہیں۔ ہم اس مضمون میں نوڈ سلیکٹر کے شیڈولنگ کی رکاوٹوں پر توجہ مرکوز کرنے جا رہے ہیں۔ ہم دریافت کریں گے کہ نوڈ سلیکٹر کیا ہے، یہ کیسے کام کرتا ہے، اور اسے کبرنیٹس میں کیسے استعمال کیا جا سکتا ہے۔ Kubernetes nodeSelector کو مؤثر طریقے سے استعمال کرنے کے طریقے کو سمجھنے میں آپ کی مدد کرنے کے لیے ہم ایک سادہ منظر پیش کریں گے۔

Kubernetes nodeSelector کیا ہے؟

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

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







شرطیں

Kubernetes nodeSelector استعمال کرنے کے لیے، یقینی بنائیں کہ آپ کے سسٹم میں درج ذیل ٹولز انسٹال ہیں:



  • Ubuntu 20.04 یا کوئی دوسرا تازہ ترین ورژن
  • کم از کم ایک ورکر نوڈ کے ساتھ Minikube کلسٹر
  • Kubectl کمانڈ لائن ٹول

اب، ہم اگلے حصے میں جا رہے ہیں جہاں ہم یہ ظاہر کریں گے کہ آپ کبرنیٹس کلسٹر پر نوڈ سلیکٹر کو کس طرح استعمال کر سکتے ہیں۔



کوبرنیٹس میں نوڈ سلیکٹر کنفیگریشن

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





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

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



نوڈ سلیکٹر کے بغیر تعیناتی کو ترتیب دیں۔

سب سے پہلے، ہم ذیل میں دی گئی کمانڈ کا استعمال کرکے ان تمام نوڈس کی تفصیلات نکالیں گے جو اس وقت کلسٹر میں فعال ہیں:

> kubectl نوڈس حاصل کریں

یہ کمانڈ کلسٹر میں موجود تمام نوڈس کو نام، حیثیت، کردار، عمر، اور ورژن کے پیرامیٹرز کی تفصیلات کے ساتھ درج کرے گی۔ ذیل میں دیا گیا نمونہ آؤٹ پٹ دیکھیں:

اب، ہم چیک کریں گے کہ کلسٹر میں نوڈس پر کون سے داغ فعال ہیں تاکہ ہم اس کے مطابق نوڈ پر پوڈز کو تعینات کرنے کا منصوبہ بنا سکیں۔ نیچے دی گئی کمانڈ کو نوڈ پر لگائے گئے داغوں کی تفصیل حاصل کرنے کے لیے استعمال کیا جانا ہے۔ نوڈ پر کوئی داغ فعال نہیں ہونا چاہئے تاکہ اس پر پھلی آسانی سے لگائی جاسکے۔ تو آئیے دیکھتے ہیں کہ درج ذیل کمانڈ پر عمل کرتے ہوئے کلسٹر میں کون سے داغ فعال ہیں:

> kubectl وضاحت نوڈس minikube | گرفت داغدار

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

> نینو deplond.yaml

یہاں، ہم نینو کمانڈ کے ساتھ deplond.yaml نامی YAML فائل بنانے کی کوشش کر رہے ہیں۔

اس کمانڈ پر عمل کرنے پر، ہمارے پاس ایک deplond.yaml فائل ہوگی جہاں ہم تعیناتی کنفیگریشن کو اسٹور کریں گے۔ ذیل میں دی گئی تعیناتی کی ترتیب دیکھیں:

اب، ہم تعیناتی کنفیگریشن فائل کا استعمال کرکے تعیناتی بنائیں گے۔ deplond.yaml فائل کو کنفیگریشن بنانے کے لیے 'create' کمانڈ کے ساتھ استعمال کیا جائے گا۔ ذیل میں دی گئی مکمل کمانڈ دیکھیں:

> kubectl بنائیں -f deplond.yaml

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

> kubectl حاصل pods

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

  متن کی تفصیل خود بخود تیار ہو گئی۔

اگلا، ہمیں نقل کی گنتی کو تبدیل کرنے کی ضرورت ہے جو deplond.yaml فائل میں ترمیم کرکے کیا جا سکتا ہے۔ بس deplond.yaml فائل کو کھولیں اور نقل کی قدر میں ترمیم کریں۔ یہاں، ہم نقلیں: 3 کو نقل کر رہے ہیں: 30۔ ذیل میں دیے گئے سنیپ شاٹ میں ترمیم دیکھیں:

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

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

  متن کی تفصیل خود بخود تیار ہو گئی۔

اب، آئیے -o وسیع آپشن کا استعمال کرکے پوڈز کی مزید تفصیلات چیک کریں:

> kubectl حاصل pods -دی چوڑا

  متن کی تفصیل خود بخود تیار ہو گئی۔

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

> kubectl لیبل نوڈس ماسٹر on-master= سچ

نوڈ سلیکٹر کے ساتھ تعیناتی کو ترتیب دیں۔

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

سب سے پہلے، ہم 'نانو' کمانڈ کے ساتھ ایک YAML فائل بنائیں گے جہاں ہمیں تعیناتی کی ترتیب کو ذخیرہ کرنے کی ضرورت ہے۔

> نینو nd.yaml

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

اب، ذیل میں دی گئی کمانڈ کے ساتھ نوڈ سلیکٹر کی تعیناتی بنائیں:

> kubectl بنائیں -f nd.yaml

-o وسیع پرچم کا استعمال کرکے پھلیوں کی تفصیلات حاصل کریں:

> kubectl حاصل pods -دی چوڑا

  متن، کیلنڈر کی تفصیل خود بخود درمیانے اعتماد کے ساتھ پیدا ہوتی ہے۔

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

درج ذیل کمانڈ کا استعمال کرکے تعیناتی پر نئی تبدیلیاں لاگو کریں:

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

  متن کی تفصیل خود بخود تیار ہو گئی۔

نتیجہ

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