کبرنیٹس ماحولیات میں HAProxy کو بطور انگریس کنٹرولر استعمال کرنے کا طریقہ

Kbrny S Mahwlyat My Haproxy Kw Btwr Angrys Kn Rwlr Ast Mal Krn Ka Tryq



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

ایک داخلی کنٹرولر کیا ہے؟

ایک داخلی کنٹرولر ایک ایسا جزو ہے جو صارفین کو اپنے Kubernetes کلسٹر کے اندر خدمات تک رسائی کا انتظام اور کنٹرول کرنے کی اجازت دیتا ہے۔ انگریس کنٹرولر کے دو اہم عناصر ہیں:

  1. داخلی وسائل - یہ ایک Kubernetes API آبجیکٹ ہے جو مخصوص میزبان نام اور راستوں کی بنیاد پر کلسٹر میں سروسز کی ٹریفک کو روٹ کرنے کے اصولوں کی وضاحت کرتا ہے۔
  2. انگریس کنٹرولر - یہ ایک سافٹ ویئر کا جزو ہے جیسا کہ HAProxy، Traefik، یا NGINX جو ان قوانین کو لاگو کرتا ہے جو داخلی وسائل میں بیان کیے گئے ہیں۔ یہ داخلی اشیاء میں کی جانے والی تبدیلیوں کی بنیاد پر ٹریفک کو سنبھالنے کے لیے لوڈ بیلنس کو ترتیب دیتا ہے۔

کبرنیٹس ماحولیات میں HAProxy کو بطور انگریس کنٹرولر استعمال کرنے کا طریقہ

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







N/B: یقینی بنائیں کہ آپ کا کبرنیٹس کلسٹر اوپر اور چل رہا ہے۔ پھر، مندرجہ ذیل کے طور پر آگے بڑھیں.



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



سے رجوع کریں۔ منی کیوب دستاویزات اپنے پلیٹ فارم کے لیے استعمال کرنے کے لیے انسٹالیشن کمانڈز پر۔ اس صورت میں، ہم ایک مستحکم 'x64' لینکس فن تعمیر چلاتے ہیں اور درج ذیل کمانڈز چلاتے ہیں:





$ curl -یہ https: // storage.googleapis.com / منی کیوب / ریلیز / تازہ ترین / minikube-linux-amd64
$ sudo انسٹال کریں minikube-linux-amd64 / usr / مقامی / بن / منی کیوب

پہلی کمانڈ جدید ترین مستحکم Minikube بائنری کو پکڑتی ہے، جبکہ دوسری کمانڈ بائنری کو مخصوص راستے میں انسٹال اور منتقل کرتی ہے۔

ایک بار جب آپ نے Minikube انسٹال کر لیا، تو اسے کلسٹر لانے کے لیے شروع کریں۔



$ minikube شروع

اس کے بعد آپ کے پاس کلسٹر تک رسائی کے لیے kubectl انسٹال ہونا ضروری ہے۔ تاہم، آپ kubectl ورژن استعمال کر سکتے ہیں جو Minikube کے ساتھ دستیاب ہے۔ مثال کے طور پر، چلنے والے پوڈز کی تفصیلات چیک کرنے کے لیے، آپ 'kubectl' کمانڈ کو مندرجہ ذیل طور پر چلاتے ہیں:

$ minikube kubectl -- پھلیاں حاصل کریں -A

اس طرح، آپ کو kubectl انسٹال کرنے کی ضرورت نہیں ہے۔ (-) اشارہ کرتا ہے کہ کمانڈز kubectl کے لیے ہیں، Minikube کے لیے نہیں۔

مرحلہ 2: نام کی جگہ بنائیں
دوسرے مرحلے میں داخلی کنٹرولر کے لیے ایک سرشار نام کی جگہ بنانا شامل ہے۔ ہم نے نام کی جگہ کا نام 'haproxy-controller' رکھا ہے۔

$ minikube kubectl نام کی جگہ haproxy-controller بنائیں

مرحلہ 3: HAProxy Ingress کنٹرولر بنائیں اور تعینات کریں۔
آپ انگریس کنٹرولر کو کیسے بناتے ہیں اس پر منحصر ہے کہ آپ کیا حاصل کرنا چاہتے ہیں۔ مثال کے طور پر، آپ درخواست کردہ میزبان نام کی بنیاد پر HTTP ٹریفک کو روٹ کرنے کے لیے HAProxy انگریس کنٹرولر بنا سکتے ہیں۔ ایسی صورت میں، اپنے DNS سرور تک رسائی حاصل کرکے اور اپنے کلسٹر میں ہدف کے میزبان نام کا نقشہ بنانے کے لیے 'A' ریکارڈ بنا کر شروع کریں۔

ایک بار جب آپ کے پاس اپنا درست 'A' ریکارڈ ہو جائے تو، درج ذیل تصویر میں دکھایا گیا اپنی انگریس کنٹرولر YAML فائل بنائیں۔ پہلے حصے میں، ہم نے ایک تعیناتی وسیلہ بنایا ہے جو ہماری مثال کے طور پر 'jmalloc/echo-server' Docker کنٹینر امیج کو استعمال کرتا ہے۔

YAML فائل کے دوسرے حصے میں، ہم نے سروس کا وسیلہ بنایا ہے جو اس میزبان نام کی بنیاد پر نقش ہو جاتا ہے جس کی درخواست انگریس کنٹرولر میں کی جاتی ہے جو کہ مرحلہ 4 میں بنایا گیا ہے۔

فائل کو محفوظ کریں اور kubectl کا استعمال کرتے ہوئے اسے اپنے کلسٹر میں تعینات کریں۔ ہم اپنے کیس کے لیے درج ذیل کمانڈ کو چلا کر Minikube kubectl کا حوالہ دیتے ہیں۔ ہمارا HAProxy انگریس کنٹرولر 'linuxhint-jmaildeployment.yaml' ہے۔

$ minikube kubectl -- درخواست دیں -f < فائل کا نام >

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

$ minikube kubectl -- پھلیاں حاصل کریں --نام کی جگہ ہاپروکسی کنٹرولر

یقینی بنائیں کہ آپ صحیح نام کی جگہ استعمال کرتے ہیں جسے آپ نے مرحلہ 1 میں بنایا ہے۔ آپ کو ایک آؤٹ پٹ ملے گا جو اس بات کی تصدیق کرے گا کہ سروس دستیاب ہے جس کا مطلب ہے کہ تعیناتی کامیاب تھی۔

مرحلہ 4: ایک داخلی وسیلہ بنائیں اور تعینات کریں۔
ایک اور YAML فائل بنائیں جو داخلی وسائل کے طور پر کام کرتی ہے جس میں قواعد موجود ہیں کہ HAProxy کو آپ کے ٹریفک کو کیسے روٹ کرنا چاہئے۔ یقینی بنائیں کہ آپ صحیح ڈومین نام (میزبان) استعمال کرتے ہیں جسے آپ نشانہ بنا رہے ہیں اور آنے والی ٹریفک کو قبول کرنے کے لیے نام اور مطلوبہ پورٹ کو ایڈجسٹ کریں۔

HAProxy ingress ریسورس فائل کو محفوظ کریں اور اسے اسی طرح لگائیں جیسا کہ ہم نے کنٹرولر کے ساتھ کیا تھا۔

$ minikube kubectl -- درخواست دیں -f < فائل کا نام >

ہم اپنے داخلی وسائل کو 'linuxhint-ingresscontroller.yaml' کا نام دیتے ہیں۔

یہی ہے! درج ذیل کمانڈ کے ساتھ، آپ تصدیق کر سکتے ہیں کہ آپ کا HAProxy انگریس کنٹرولر اس پورٹ کو چیک کر کے کام کر رہا ہے جو نوڈ پورٹ کو تفویض کیا گیا ہے۔

$ minikube kubectl -- haproxy-kubernetes-ingress سروس حاصل کریں۔ --نام کی جگہ ہاپروکسی کنٹرولر

اس معاملے کے لیے، اسے پورٹ 32448 کے ساتھ تفویض کیا گیا ہے۔ آپ پورٹ کا استعمال کرتے ہوئے تخلیق کردہ سروس تک رسائی حاصل کر سکتے ہیں اور اس کی حیثیت چیک کر سکتے ہیں۔

اس کے ساتھ، آپ نے HAProxy کو Kubernetes ماحول میں ایک داخلی کنٹرولر کے طور پر استعمال کرنے میں کامیاب ہو گئے۔

نتیجہ

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