گوگل کے مطابق کنٹینرز استعمال کرنے کے 7 بہترین طریقے

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

گوگل کے مطابق کنٹینرز استعمال کرنے کے 7 بہترین طریقے

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

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

1. مقامی کنٹینر لاگنگ میکانزم استعمال کریں۔

اگر ایپلیکیشن Kubernetes کلسٹر پر چل رہی ہے، تو لاگز کے لیے زیادہ کی ضرورت نہیں ہے۔ ایک مرکزی لاگنگ سسٹم ممکنہ طور پر اس کلسٹر میں پہلے سے ہی بنایا گیا ہے جسے آپ استعمال کر رہے ہیں۔ Kubernetes انجن استعمال کرنے کی صورت میں، یہ ذمہ دار ہے۔ اسٹیک ڈرائیور لاگنگ. (نوٹ. ترجمہ: اور اگر آپ اپنی Kubernetes انسٹالیشن استعمال کرتے ہیں، تو ہم تجویز کرتے ہیں کہ ہمارے اوپن سورس حل کو قریب سے دیکھیں۔ لاگ ہاؤس.) اپنی زندگی کو سادہ رکھیں اور مقامی کنٹینر لاگنگ میکانزم استعمال کریں۔ stdout اور stderr پر لاگز لکھیں - وہ خود بخود موصول، محفوظ اور انڈیکس ہو جائیں گے۔

اگر چاہیں تو، آپ لاگ ان بھی لکھ سکتے ہیں۔ JSON فارمیٹ. یہ طریقہ ان میں میٹا ڈیٹا شامل کرنا آسان بنا دے گا۔ اور ان کے ساتھ، Stackdriver Logging میں اس میٹا ڈیٹا کا استعمال کرتے ہوئے لاگ کے ذریعے تلاش کرنے کی صلاحیت ہوگی۔

2. اس بات کو یقینی بنائیں کہ کنٹینرز بے وطن اور ناقابل تغیر ہیں۔

Kubernetes کلسٹر میں کنٹینرز کو صحیح طریقے سے کام کرنے کے لیے، وہ بے وطن اور ناقابل تغیر ہونا چاہیے۔ ایک بار جب یہ شرائط پوری ہو جائیں تو، Kubernetes اپنا کام کر سکتا ہے، جب اور جہاں ضرورت ہو ایپلیکیشن اداروں کو تخلیق اور تباہ کر سکتا ہے۔

بے شمار اس کا مطلب ہے کہ کوئی بھی حالت (کسی بھی قسم کا مستقل ڈیٹا) کنٹینر کے باہر محفوظ ہے۔ اس کے لیے، ضروریات کے مطابق، مختلف قسم کے بیرونی اسٹوریج استعمال کیے جا سکتے ہیں: کلاؤڈ اسٹوریج, مستقل ڈسکیں, ریڈس, کلاؤڈ SQL یا دیگر منظم ڈیٹا بیس۔ (نوٹ. ترجمہ: ہمارے مضمون میں اس کے بارے میں مزید پڑھیںکوبرنیٹس کے آپریٹرز: اسٹیٹفول ایپلی کیشنز کو کیسے چلایا جائے۔".)

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

گوگل کے مطابق کنٹینرز استعمال کرنے کے 7 بہترین طریقے
کوبرنیٹس میں تعیناتی کنفیگریشن کو اپ ڈیٹ کرنے کی ایک مثال کنفیگ میپ کو پوڈز میں کنفیگریشن کے طور پر نصب کیا گیا ہے۔

3. مراعات یافتہ کنٹینرز سے پرہیز کریں۔

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

اگر آپ ایک کلسٹر کا انتظام کرتے ہیں، تو آپ استعمال کر سکتے ہیں۔ پوڈ سیکیورٹی پالیسی مراعات یافتہ کنٹینرز کے استعمال پر پابندیوں کے لیے۔

4. جڑ کے طور پر چلانے سے بچیں

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

اس سے بچنے کا بہترین طریقہ یہ ہے کہ پہلے کسی بھی چیز کو جڑ کے طور پر نہ چلائیں۔ ایسا کرنے کے لیے، آپ ہدایت کا استعمال کر سکتے ہیں۔ USER в Dockerfile یا runAsUser Kubernetes میں کلسٹر ایڈمنسٹریٹر بھی استعمال کرتے ہوئے نفاذ کے رویے کو ترتیب دے سکتا ہے۔ پوڈ سیکیورٹی پالیسی.

5. ایپلیکیشن کو مانیٹر کرنا آسان بنائیں

لاگنگ کی طرح، نگرانی بھی ایپلیکیشن مینجمنٹ کا ایک لازمی حصہ ہے۔ Kubernetes کمیونٹی میں نگرانی کا ایک مقبول حل ہے۔ Prometheus - ایک ایسا نظام جو خود بخود پوڈز اور خدمات کا پتہ لگاتا ہے جن کی نگرانی کی ضرورت ہوتی ہے۔ (نوٹ. ترجمہ: ہمارا بھی دیکھیں تفصیلی رپورٹ Prometheus اور Kubernetes کا استعمال کرتے ہوئے نگرانی کے موضوع پر۔) اسٹیک ڈرائیور Kubernetes کلسٹرز کی نگرانی کرنے کے قابل ہے اور اس میں ایپلی کیشن کی نگرانی کے لیے Prometheus کا اپنا ورژن شامل ہے۔

گوگل کے مطابق کنٹینرز استعمال کرنے کے 7 بہترین طریقے
Stackdriver پر Kubernetes ڈیش بورڈ

Prometheus توقع کرتا ہے کہ ایپلیکیشن میٹرکس کو HTTP اینڈ پوائنٹ پر بھیجے گی۔ اس کے لیے دستیاب ہے۔ پرومیتھیس کلائنٹ لائبریریاں. اسی فارمیٹ کو دوسرے ٹولز جیسے استعمال کرتے ہیں۔ اوپن سنسس и Istio.

6. ایپ کی صحت کی صورتحال دستیاب کرائیں۔

پروڈکشن میں ایپلیکیشن مینجمنٹ کو اپنی ریاست کو پورے سسٹم تک پہنچانے کی صلاحیت سے مدد ملتی ہے۔ کیا درخواست چل رہی ہے؟ کیا یہ ٹھیک ہے؟ کیا آپ ٹریفک وصول کرنے کے لیے تیار ہیں؟ وہ کیسا برتاؤ کر رہا ہے؟ اس مسئلے کو حل کرنے کا سب سے عام طریقہ صحت کی جانچ پڑتال کرنا ہے۔ (صحت کی جانچ). Kubernetes کی دو قسمیں ہیں: زندہ دلی اور تیاری کی تحقیقات.

زندہ دلی کی تحقیقات کے لیے (زندگی کی جانچ) ایپلیکیشن کا ایک HTTP اینڈ پوائنٹ ہونا چاہیے جو "200 OK" جواب دیتا ہے اگر یہ فعال ہے اور اس کی بنیادی انحصار مطمئن ہے۔ تیاری کی تحقیقات کے لیے (سروس کی تیاری کی جانچ) ایپلیکیشن کے پاس ایک اور HTTP اینڈ پوائنٹ ہونا ضروری ہے جو "200 OK" جواب دیتا ہے اگر ایپلی کیشن صحت مند حالت میں ہے، ابتدائی مراحل مکمل ہو چکے ہیں اور کسی بھی درست درخواست کے نتیجے میں غلطی نہیں ہوتی ہے۔ Kubernetes ٹریفک کو صرف کنٹینر تک لے جائے گا اگر درخواست ان چیک کے مطابق تیار ہو۔ اگر زندہ رہنے اور تیاری کی حالتوں میں کوئی فرق نہ ہو تو دو اختتامی نقطوں کو ملایا جا سکتا ہے۔

آپ اس کے بارے میں گوگل کے ڈویلپر ایڈووکیٹ سندیپ دنیش کے متعلقہ مضمون میں مزید پڑھ سکتے ہیں۔Kubernetes کے بہترین طریقے: تیاری اور زندہ دلی کی تحقیقات کے ساتھ صحت کی جانچ پڑتال کرنا'.

7. اپنا تصویری ورژن احتیاط سے منتخب کریں۔

زیادہ تر عوامی اور نجی تصاویر ٹیگنگ سسٹم کا استعمال کرتی ہیں جیسا کہ میں بیان کیا گیا ہے۔ کنٹینرز کی تعمیر کے لیے بہترین طریقے. اگر تصویر قریب کے نظام کا استعمال کرتی ہے۔ سیمنٹک ورژننگ، یہ ضروری ہے کہ ٹیگنگ کی تفصیلات کو مدنظر رکھا جائے۔ مثال کے طور پر، ٹیگ latest تصویر سے دوسری تصویر تک کثرت سے منتقل ہو سکتے ہیں - اگر آپ کو قابل پیشن گوئی اور دوبارہ قابل تعمیر اور تنصیبات کی ضرورت ہو تو اس پر بھروسہ نہیں کیا جا سکتا۔

آپ ٹیگ استعمال کر سکتے ہیں۔ X.Y.Z (وہ تقریباً ہمیشہ تبدیل نہیں ہوتے ہیں)، لیکن اس صورت میں، تمام پیچ اور تصویر کے اپ ڈیٹس پر نظر رکھیں۔ اگر آپ جو تصویر استعمال کر رہے ہیں اس میں ٹیگ ہے۔ X.Y، یہ سنہری مطلب کے لئے ایک اچھا اختیار ہے۔ اسے منتخب کرنے سے، آپ خود بخود پیچ ​​وصول کرتے ہیں اور ساتھ ہی ایپلیکیشن کے مستحکم ورژن پر بھروسہ کرتے ہیں۔

مترجم سے PS

ہمارے بلاگ پر بھی پڑھیں:

ماخذ: www.habr.com

نیا تبصرہ شامل کریں