جوابدہ کبرنیٹس (K8s) انوینٹری ماخذ

Jwabd Kbrny S K8s Anwyn Ry Makhdh



اس پوسٹ میں، ہم جواب دینے والے ٹول میں Kubernetes پلگ ان کو استعمال کرنے کا طریقہ سیکھتے ہیں۔ جواب میں، بڑی تعداد میں کنٹینرز کا انتظام کرنا مشکل ہے۔ لیکن کنٹینرز کے انتظام کے دوران جوابی میں Kubernetes کا استعمال مددگار ہے۔ اس گائیڈ میں، ہم سیکھیں گے کہ Kubernetes انوینٹری کا ماخذ کیا ہے اور یہ Ansible میں کیسے کام کرتا ہے۔

گوگل نے Kubernetes نامی آسانی سے قابل رسائی مینجمنٹ سوفٹ ویئر لانچ کیا جسے K8s کے نام سے بھی جانا جاتا ہے جس کا استعمال مشینوں کے ریموٹ سیٹ پر صفر-ڈاؤن ٹائم انسٹالیشن فیچرز، خودکار ریورژن، اور اسکیل ایبلٹی کے ساتھ ورچوئلائزڈ کنفیگریشنز کو منظم کرنے کے لیے کیا جاتا ہے جو Kubernetes پلگ ان کو انتہائی موافقت پذیر فراہم کرتا ہے۔ جواب میں فن تعمیر. ضروری فعالیت کے لیے REST APIs کی دستیابی کے ذریعے، Kubernetes کا بنیادی ہدف ان پیچیدگیوں کو چھپانا ہے جو متعدد کنٹینرز کو کنٹرول کرنے سے وابستہ ہیں۔







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



جوابدہ میں Kubernetes انوینٹری ماخذ کو استعمال کرنے کی شرائط

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



  • جوابی منظر نامے میں کام کرنے کے لیے، ہم سب سے پہلے سرور پر Ansible ٹول سیٹ اپ کرتے ہیں اور اس بات کو یقینی بناتے ہیں کہ آپ کے پاس Ansible ورژن 2.11.7 ہے تاکہ ہم Kubernetes پلگ ان کو آسانی سے استعمال کر سکیں۔
  • Kubernetes پلگ ان کا اندازہ لگانے کے لیے، ہمیں ایک ریموٹ سرور ڈیوائس کی ضرورت ہے جس میں Kubernetes کلسٹر بنایا گیا ہو۔
  • ریموٹ ہوسٹ کو فی الحال جوابدہ ہدایات اور پلے بکس کے ساتھ ساتھ ایک بلٹ انوینٹری فائل پر عمل کرنے کے لیے ترتیب دیا گیا ہے۔ ٹارگٹ ریموٹ ڈیوائس کا نام K8s ماسٹر نوڈ ہے۔
  • Python کا ورژن 3.6 یا اس سے اوپر کا ہے جسے Ansible کنٹرولر کی ڈیوائس پر انسٹال کرنا ضروری ہے۔ یہ ہدف ریموٹ ہوسٹ ڈیوائس میں بھی ہو سکتا ہے۔
  • ازگر کے اوپن شفٹ ماڈیول کا ورژن 0.6 یا اس سے اوپر کا ہے۔ ہمیں ورژن 3.11 یا اس سے اوپر کے pyYAML ماڈیول کی بھی ضرورت ہے۔ دونوں ماڈیولز کو ریموٹ سرور ڈیوائس کے ساتھ ساتھ کنٹرولر ڈیوائس میں بھی ترتیب دیا جانا چاہیے۔

مثال:





یہ پہلی مثال ہے جہاں ہم جوابی میں Kubernetes کو نافذ کرتے ہیں۔ ایسا کرنے کے لیے، ہم Kubernetes انوینٹری سورس کو لاگو کرنے کے لیے کسی بھی جوابدہ ماحول کا استعمال کرتے ہیں۔ Kubernetes Inventory Plugin کا ​​استعمال کرتے ہوئے درج ذیل درج ذیل عمل کو درج ذیل منظر نامے میں انجام دیا جاتا ہے۔

  • جوابی میں K8s کلسٹر میں نئے نام کی جگہ کا نفاذ۔
  • Ansible پلے بک کا استعمال کرتے ہوئے nginx pod کی تخلیق۔
  • Ansible میں nginx تعیناتی کی تخلیق۔

تصورات اور عمل کو سمجھنے میں آسان بنانے کے لیے، ہم مثال کو کئی مراحل میں نافذ کرتے ہیں۔



مرحلہ 1: جوابی میں K8s کلسٹر میں نئی ​​نیم اسپیس کو لاگو کریں۔

پہلے مرحلے میں، ہم پلے بک بناتے ہیں تاکہ ہم جواب میں '.yml' فارمیٹ میں مواد لکھ سکیں۔ پلے بک بنانے کے لیے، درج ذیل کمانڈ ہے جو ہم استعمال کرتے ہیں:

[ جڑ @ ماسٹر جوابدہ ] # nano  nginx_pod.yml

اب، 'pod.yml' پلے بک بنائی گئی ہے اور جوابی کے نئے ٹرمینل میں لانچ کی گئی ہے۔ ہم سکرپٹ لکھنا شروع کرتے ہیں۔ پلے بک میں، ہم سب سے پہلے API ورژن کی وضاحت کرتے ہیں جسے ہم Ansible pod میں استعمال کرتے ہیں جو کہ 'v1' ہے۔ نام کی جگہ جس کی ہم تعریف کرتے ہیں وہ ہے 'Ansible-namespace'۔ پھر، ہم جوابی نام کی جگہ کے میٹا ڈیٹا کی فہرست بناتے ہیں۔ میٹا ڈیٹا میں، ہم nginx سافٹ ویئر اور لیبل کا استعمال کرتے ہیں جس میں اس میں ویلیو فرنٹ اینڈ کا ایک درجہ ہوتا ہے۔ پلے بک کی تفصیلات میں، ہم نام اور اس تصویر کی فہرست بناتے ہیں جو کنٹینر میں محفوظ ہے۔ دونوں اس میں nginx پر مشتمل ہیں۔

مرحلہ 2: جوابدہ میں مینی فیسٹ دستاویز بنائیں

اب، ہم Ansible کی اسی ڈائرکٹری میں ایک اور دستاویز بناتے ہیں جو کہ '.yml' فارمیٹ میں تعیناتی دستاویز ہے۔ مینی فیسٹ دستاویز بنانے کے لیے، جوابی ٹرمینل میں درج ذیل کمانڈ کا استعمال کریں:

[ جڑ @ ماسٹر جوابدہ ] # nano nginx_deployment.yml

مینی فیسٹ دستاویز میں، ہم پہلے ایپ ورژن کی دوبارہ وضاحت کرتے ہیں جو کہ 'app/v1' ہے۔ پھر، ہم بتاتے ہیں کہ یہ کس قسم کی فائل ہے، آیا یہ ایک تعیناتی فائل ہے۔ پھر، ہم نام کی جگہ کی وضاحت کرتے ہیں جو کہ جوابی نام کی جگہ ہے۔ نفاذ کو بنانے کے لیے، جوابی نام کی جگہ کے اندر دو نقلیں پوڈ کا نمبر دکھاتی ہیں۔ nginx امیجز 1.14.2 ہیں جو پوڈ میں لانچ کی گئی ہیں۔ میچ لیبلز پیرامیٹر پوڈز کے لیے ٹیگز اور اسپیک پیرامیٹر کے تحت ان کی وضاحتیں فراہم کرتا ہے۔ اگر کسی طرح سے پوڈز پر ٹیگز کنفیگریشن کی معلومات میں بیان کردہ ٹیگز سے مماثل ہیں، تو عمل درآمد جواب میں مینی فیسٹ دستاویز میں ہوتا ہے۔

مرحلہ 3: جوابدہ میں کبرنیٹس کے نفاذ کے لیے پلے بک بنائیں

اب، ہم جوابی میں ایک اور پلے بک بنانا چاہتے ہیں۔ اس پلے بک میں، ہم اس میں Kubernetes کی فعالیت کو نافذ کرتے ہیں۔ پلے بک بنانے کے لیے درج ذیل کمانڈ کا استعمال کریں:

[ جڑ @ ماسٹر جوابدہ ] # nano kubernetes_main.yml

پلے بک اسی ڈائرکٹری میں بنائی گئی ہے جہاں پچھلی پلے بک اور مینی فیسٹ دستاویز جوابی میں محفوظ ہیں۔ پلے بک میں، ہم پہلے پلے بک کی فعالیت کی وضاحت کرتے ہیں جسے ہم نافذ کرنا چاہتے ہیں۔ کنکشن بنانے کے لیے، ہم ریموٹ میزبان فراہم کرتے ہیں جنہیں ہم ہدف بنانا چاہتے ہیں۔ یہاں، ہم 'تمام' میزبانوں کو نشانہ بناتے ہیں۔ اگلا، ہم اس راستے کا استعمال کرتے ہوئے جہاں اسے ذخیرہ کیا گیا ہے جوابی میں Python انٹرپریٹر کو چیک کرنے کے لیے متغیر کی وضاحت کرتے ہیں۔ اب، ہم پلے بک میں کاموں کی وضاحت کرتے ہیں۔ سب سے پہلے، ہم منی کیوب ڈیوائس کی حیثیت کو چیک کرتے ہیں۔ اگلا، ہم پلے بک میں ایک نئی Kubernetes نام کی جگہ بناتے ہیں۔ پھر، nginx_pod.yml اور nginx_deployment .yml کو ریموٹ ڈیوائس پر ڈپلیکیٹ کریں۔

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

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

تمام:
میزبان:
k8s_Master_Node:
جوابی_میزبان: 192.168.3.229
ansible_user: قابل جواب
جوابی_پاس ورڈ: ********
جوابی_کنکشن: ssh
جوابی_پورٹ: 22

[ جڑ @ ماسٹر جوابدہ ] # جوابی پلے بک kubernates_main.yml

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

ٹاسک کو ٹارگٹ مشین پر رکھنے کے بعد، ہم چیک کرتے ہیں کہ آیا 'Asible-namespace' Kubernetes کلسٹر میں ہے یا نہیں۔ ہم درج ذیل 'grep' کمانڈ استعمال کرتے ہیں:

[ جڑ @ ماسٹر جوابدہ ] # kubectl نام کی جگہ حاصل کریں | grep جوابی نام کی جگہ

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

[ جڑ @ ماسٹر جوابدہ ] # kubectl get pods --namespace جوابی نام کی جگہ

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

[ جڑ @ ماسٹر جوابدہ ] # kubectl کی تعیناتی حاصل کریں --namespace جوابی نام کی جگہ

نتیجہ

ہم نے سیکھا کہ Ansible میں Kubernetes انوینٹری کا ماخذ کیا ہے۔ ہم نے Ansible میں Kubernetes انوینٹری کو استعمال کرنے کا طریقہ بھی سیکھا۔ اس کے بعد، ہم نے ایک مثال کو نافذ کیا تاکہ ہم Ansible میں Kubernetes انوینٹری سورس کے کام کے بارے میں مزید واضح طور پر جان سکیں۔