ڈیبگنگ کے لیے Kubernetes Ingress لاگ حاصل کریں۔

Ybgng K Ly Kubernetes Ingress Lag Hasl Kry



کیا آپ جانتے ہیں کہ ڈیبگنگ کے لیے گیٹ کبرنیٹس انگریس لاگ کیا ہے؟ نیٹ ورکنگ کے مسائل کی تشخیص کرنا زیادہ مشکل ہوتا جا رہا ہے کیونکہ تعیناتیاں بڑی سے بڑی ہوتی جا رہی ہیں۔ یہ ٹیوٹوریل آپ کو دکھاتا ہے کہ کس طرح ingress-nginx kubectl پلگ ان کا استعمال ingress کنٹرولر کے ذریعے اپنی ایپلیکیشن تک رسائی کو ڈیبگ کرنے کے لیے کریں۔ آئیے پہلے Kubernetes ingress کی تعریف دیکھتے ہیں جو اہم موضوع کو بہتر طور پر سمجھنے کے لیے ضروری ہے۔

Kubernetes Ingress کیا ہے؟

داخل ہونے کی تعریف اس کے لغوی معنی میں 'داخلہ' ہے۔







Kubernetes کمیونٹی میں، یہ بھی سچ ہے. ایک ٹریفک جو کلسٹر میں داخل ہوتی ہے اسے داخلے کے طور پر کہا جاتا ہے، جب کہ ایک ٹریفک جو کلسٹر سے نکلتی ہے اسے ایگریس کہا جاتا ہے۔




ایک مقامی Kubernetes وسائل کے طور پر، ingress کا موازنہ پوڈز، تعیناتیوں وغیرہ سے کیا جا سکتا ہے۔ آپ ingress کا استعمال کرتے ہوئے DNS روٹنگ کنفیگریشنز کو برقرار رکھ سکتے ہیں۔ اندراج کنٹرولر وہ ہے جو روٹنگ کو انجام دیتا ہے۔ یہ ایسا کرتا ہے کہ روٹنگ کے اصولوں کو داخل کرنے والی اشیاء سے پڑھ کر جو etcd میں محفوظ ہیں۔ Kubernetes کے داخلے کے بغیر، آپ تعیناتیوں میں سروس Type Load Balancer کو شامل کر کے کسی ایپلیکیشن کو بیرونی دنیا کے سامنے لا سکتے ہیں۔



Kubernetes Ingress کیسے کام کرتا ہے؟

دو اہم چیزیں ہیں جن کے بارے میں آپ کو واضح ہونا ضروری ہے۔ یہ ہیں:





Kubernetes Ingress Resource

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



Kubernetes Ingress کنٹرولر

داخلی وسائل کے ذریعے لاگو ہونے والے DNS قواعد تک رسائی حاصل کرکے، Kubernetes ingress کنٹرولرز (Nginx/HAProxy، وغیرہ) روٹنگ کے انچارج ہیں۔

Ingress کنٹرولر کا نفاذ Kubernetes کا مقامی نہیں ہے۔ نتیجے کے طور پر، یہ کلسٹر ڈیفالٹ نہیں ہو سکتا۔

داخلے کے قواعد کے کام کرنے کے لیے، ہمیں ایک داخلی کنٹرولر ترتیب دینا چاہیے۔ مارکیٹ میں بہت سے اوپن سورس اور بزنس انگریس کنٹرولرز موجود ہیں۔ ریورس ویب پراکسی سرور کا کلسٹر کا ورژن ایک داخلی کنٹرولر کے طور پر کام کرتا ہے۔ یہ Kubernetes پر مبنی ریورس پراکسی سرور لوڈ بیلنس سروس کے سامنے ہے۔

Ingress کنٹرولر کیا ہے؟

ایک کلسٹر سے چلنے والا پروگرام جسے Ingress کنٹرولر کہا جاتا ہے Ingress وسائل کے بعد HTTP لوڈ بیلنس کو تشکیل دیتا ہے۔ لوڈ بیلنسر بیرونی طور پر تعینات ہارڈ ویئر یا کلاؤڈ لوڈ بیلنسر ہو سکتا ہے، یا یہ کلسٹر کے اندر سافٹ ویئر کے طور پر کام کر سکتا ہے۔ مختلف لوڈ بیلنسرز کے لیے مختلف انگریس کنٹرولر کے نفاذ کی ضرورت ہے۔

NGINX استعمال کرتے وقت، لوڈ بیلنسر اور انگریس کنٹرولر دونوں ایک پوڈ میں تعینات ہوتے ہیں۔

براہ کرم نوٹ کریں کہ Ingress ریسورس کے کام کرنے کے لیے ایک فعال انگریس کنٹرولر کلسٹر میں موجود ہونا چاہیے۔

انگریس کنٹرولرز خود بخود کلسٹر کے ساتھ لانچ نہیں ہوتے ہیں، دوسرے قسم کے کنٹرولرز کے برعکس جو kube-controller-manager binary کے جزو کے طور پر کام کرتے ہیں۔

شرائط:

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

اگر آپ کے پاس فی الحال کلسٹر نہیں ہے تو، Minikube کو ایک بنانے کے لیے استعمال کیا جا سکتا ہے۔ Minikube ایک مقامی Kubernetes ہے جس کا مقصد Kubernetes کو سیکھنا اور تیار کرنا آسان بنانا ہے۔

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

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

منی کیوب ٹول کا استعمال کرتے ہوئے، آپ کوبرنیٹس کو مقامی طور پر چلا سکتے ہیں۔ Minikube روزانہ ترقیاتی کام کے لیے یا Kubernetes کی جانچ کرنے کے لیے آپ کے کمپیوٹر پر ایک آل ان ون یا ملٹی نوڈ مقامی Kubernetes کلسٹر چلاتا ہے (بشمول Windows، Linux PCs، اور macOS)۔ منی کیوب کو شروع کرنے کا حکم یہ ہے:

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



مرحلہ 2: انگریس کنٹرولر کو فعال کریں۔

ہم اس مرحلے میں NGINX Ingress کنٹرولر کو چالو کرنے کا طریقہ دکھائیں گے۔ درج ذیل کمانڈ پر عمل کریں:

> منی کیوب ایڈونز فعال داخل ہونا



مرحلہ 3: تصدیق کریں کہ آیا NGINX Ingress کنٹرولر کام کر رہا ہے یا نہیں۔

اب، یہ تصدیق کرنا ضروری ہے کہ آیا NGINX کنٹرولر فعال ہے یا نہیں۔ مندرجہ ذیل کمانڈ کو اس بات کی تصدیق کے لیے استعمال کیا جا سکتا ہے:

> kubectl حاصل pods -n ingress-nginx



براہ کرم آگاہ رہیں کہ شاید آپ کو معلوم نہ ہو کہ یہ پوڈز ایک منٹ تک ٹھیک سے کام کر رہے ہیں۔ آؤٹ پٹ پچھلی تصویر میں ظاہر ہوتا ہے۔

مرحلہ 4: ہیلو ورلڈ ایپ بنائیں

یہاں، ہم تعیناتی بنانے کے لیے درج ذیل کمانڈ کا استعمال کرتے ہیں:

> kubectl تعیناتی ویب بنائیں --تصویر =gcr.io / گوگل کے نمونے / ہیلو ایپ: 1.0



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

مرحلہ 5: تعیناتی کو بے نقاب کریں۔

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

> kubectl ایکسپوز تعیناتی کلثوم  - -قسم = نوڈ پورٹ --پورٹ = 8080



آپ پچھلی تصویر میں 'سروس/کلثوم بے نقاب' آؤٹ پٹ دیکھ سکتے ہیں۔

مرحلہ 6: نوڈ پورٹ کے ذریعے سروس پر جائیں۔

یہ ایک اہم مرحلہ ہے جہاں ہم آپ کو دکھاتے ہیں کہ آپ نوڈ پورٹ کے ذریعے تخلیق کردہ سروس کو کیسے دیکھ سکتے ہیں۔ اس مقصد کو حاصل کرنے کا حکم درج ذیل میں دیا گیا ہے۔

> منی کیوب سروس کلثوم  --url



آؤٹ پٹ کے ساتھ کمانڈ پچھلی تصویر میں منسلک ہے۔

اب، Minikube IP ایڈریس اور NodePort نمونہ ایپ کو دیکھنا آسان بنا دیتے ہیں۔ آپ درج ذیل مرحلے میں ایپ تک رسائی حاصل کرنے کے لیے Ingress ریسورس استعمال کر سکتے ہیں۔

مرحلہ 7: ایک داخل بنائیں

یہاں، ہم ایک Ingress بناتے ہیں جو ٹریفک کو آپ کی سروس میں منتقل کرتا ہے۔ حکم درج ذیل ہے:

> kubectl لاگو کریں -f https: // k8s.io / مثالیں / سروس / نیٹ ورکنگ / مثال - ingress.yaml



جیسا کہ آپ دیکھ سکتے ہیں، کمانڈ کامیابی کے ساتھ عمل میں آیا ہے۔

مرحلہ 8: آئی پی ایڈریس کی تصدیق کریں۔

ہم چیک کرتے ہیں کہ آئی پی ایڈریس سیٹ ہے یا نہیں۔ اس کے لیے ہم درج ذیل کمانڈ استعمال کرتے ہیں۔

> kubectl داخل ہو جاؤ



آؤٹ پٹ میں، آپ کو ADDRESS کالم میں IPv4 پتہ نظر آنا چاہیے۔

نتیجہ

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