Kubernetes 1.14: اہم اختراعات کا جائزہ

Kubernetes 1.14: اہم اختراعات کا جائزہ

یہ رات جگہ لے جائے گا Kubernetes کی اگلی ریلیز - 1.14. اس روایت کے مطابق جو ہمارے بلاگ کے لیے تیار ہوئی ہے، ہم اس شاندار اوپن سورس پروڈکٹ کے نئے ورژن میں اہم تبدیلیوں کے بارے میں بات کر رہے ہیں۔

اس مواد کو تیار کرنے کے لیے استعمال ہونے والی معلومات سے لی گئی ہے۔ Kubernetes میں اضافہ ٹریکنگ ٹیبلز, چینج 1.14 اور متعلقہ مسائل، پل کی درخواستیں، Kubernetes Enhancement Proposals (KEP)۔

آئیے SIG کلسٹر لائف سائیکل کے ایک اہم تعارف کے ساتھ شروع کرتے ہیں: متحرک فیل اوور کلسٹرز Kubernetes (یا زیادہ واضح طور پر، خود میزبان HA تعیناتیاں) اب ہے۔ بنایا جا سکتا ہے واقف (سنگل نوڈ کلسٹرز کے تناظر میں) کمانڈز کا استعمال کرتے ہوئے kubeadm (init и join)۔ مختصراً، اس کے لیے:

  • کلسٹر کے ذریعہ استعمال ہونے والے سرٹیفکیٹس کو رازوں میں منتقل کیا جاتا ہے۔
  • K8s کلسٹر کے اندر etcd کلسٹر استعمال کرنے کے امکان کے لیے (یعنی پہلے سے موجود بیرونی انحصار سے چھٹکارا حاصل کرنا) etcd-آپریٹر;
  • ایکسٹرنل لوڈ بیلنسر کے لیے تجویز کردہ سیٹنگز کو دستاویز کرتا ہے جو غلطی کو برداشت کرنے والی کنفیگریشن فراہم کرتا ہے (مستقبل میں اس انحصار کو ختم کرنے کا منصوبہ ہے، لیکن اس مرحلے پر نہیں)۔

Kubernetes 1.14: اہم اختراعات کا جائزہ
Kubernetes HA کلسٹر کا فن تعمیر جو kubeadm کے ساتھ بنایا گیا ہے۔

نفاذ کی تفصیلات میں مل سکتی ہیں۔ ڈیزائن کی تجویز. یہ خصوصیت واقعی طویل انتظار میں تھی: الفا ورژن کی واپسی K8s 1.9 میں متوقع تھی، لیکن صرف اب ظاہر ہوئی ہے۔

API

ٹیم apply اور عام طور پر بولتے ہیں اعلانیہ آبجیکٹ مینجمنٹ گزر گیا کی kubectl apiserver میں. ڈویلپرز خود مختصراً یہ کہہ کر اپنے فیصلے کی وضاحت کرتے ہیں۔ kubectl apply - Kubernetes میں کنفیگریشنز کے ساتھ کام کرنے کا ایک بنیادی حصہ، تاہم، "یہ کیڑوں سے بھرا ہوا ہے اور اسے ٹھیک کرنا مشکل ہے،" اور اس لیے اس فعالیت کو معمول پر لانے اور کنٹرول طیارے میں منتقل کرنے کی ضرورت ہے۔ آج موجود مسائل کی سادہ اور واضح مثالیں:

Kubernetes 1.14: اہم اختراعات کا جائزہ

عمل درآمد کے بارے میں تفصیلات موجود ہیں۔ CAP. موجودہ تیاری الفا ہے۔

الفا ورژن میں دستیاب ہے۔ موقع OpenAPI v3 اسکیم کے لیے استعمال کرنا CustomResources کے لیے OpenAPI دستاویزات بنانا اور شائع کرنا (CR) استعمال کیا جاتا ہے (سرور سائیڈ) K8s صارف کے بیان کردہ وسائل (CustomResourceDefinition, CRD) کی توثیق کرنے کے لیے۔ CRD کے لیے OpenAPI کی اشاعت کلائنٹس کو اجازت دیتی ہے (جیسے kubectl) اپنی طرف سے توثیق کریں (اندر kubectl create и kubectl apply) اور اسکیم کے مطابق دستاویزات جاری کریں (kubectl explain)۔ تفصیلات - میں CAP.

پہلے سے موجود نوشتہ جات اب کھل رہے ہیں ایک پرچم کے ساتھ O_APPEND (لیکن نہیں O_TRUNC) کچھ حالات میں لاگ کے نقصان سے بچنے کے لیے اور گردش کے لیے بیرونی یوٹیلیٹیز کے ساتھ لاگز کو تراشنے کی سہولت کے لیے۔

نیز Kubernetes API کے تناظر میں، یہ نوٹ کیا جا سکتا ہے کہ میں PodSandbox и PodSandboxStatus شامل کیا فیلڈ runtime_handler کے بارے میں معلومات ریکارڈ کرنے کے لیے RuntimeClass پوڈ میں (اس کے بارے میں متن میں مزید پڑھیں Kubernetes 1.12 ریلیز، جہاں یہ کلاس الفا ورژن کے طور پر نمودار ہوئی) اور ایڈمشن ویب ہکس میں لاگو کیا کون سے ورژن کا تعین کرنے کی صلاحیت AdmissionReview وہ حمایت کرتے ہیں. آخر میں، داخلہ ویب ہکس کے قواعد اب ہیں۔ محدود کیا جا سکتا ہے نام کی جگہوں اور کلسٹر فریم ورک کے ذریعہ ان کے استعمال کی حد۔

ذخیرہ

PersistentLocalVolumes، جسے ریلیز کے بعد سے بیٹا کا درجہ حاصل تھا۔ K8s 1.10, اعلان کیا مستحکم (GA): یہ فیچر گیٹ اب غیر فعال نہیں ہے اور اسے Kubernetes 1.17 میں ہٹا دیا جائے گا۔

موقع ماحولیاتی متغیر کا استعمال کرتے ہوئے کہا جاتا ہے نیچے کی طرف API (مثال کے طور پر، پوڈ کا نام) کے طور پر نصب ڈائریکٹریوں کے ناموں کے لیے subPath، تیار کیا گیا تھا - ایک نئے فیلڈ کی شکل میں subPathExpr، جو اب مطلوبہ ڈائریکٹری نام کا تعین کرنے کے لیے استعمال ہوتا ہے۔ یہ خصوصیت ابتدائی طور پر Kubernetes 1.11 میں ظاہر ہوئی، لیکن 1.14 کے لیے یہ الفا ورژن کی حیثیت میں ہی رہی۔

جیسا کہ پچھلی Kubernetes ریلیز کے ساتھ، بہت سی اہم تبدیلیاں فعال طور پر ترقی پذیر CSI (کنٹینر سٹوریج انٹرفیس) کے لیے متعارف کرائی گئی ہیں:

CSI

دستیاب ہو گیا (الفا ورژن کے حصے کے طور پر) کی حمایت CSI والیوم کے لیے سائز تبدیل کرنا. اسے استعمال کرنے کے لیے آپ کو فیچر گیٹ کو فعال کرنے کی ضرورت ہوگی۔ ExpandCSIVolumes، نیز ایک مخصوص CSI ڈرائیور میں اس آپریشن کے لیے تعاون کی دستیابی۔

الفا ورژن میں CSI کے لیے ایک اور خصوصیت - موقع براہ راست (یعنی PV/PVC استعمال کیے بغیر) پوڈ کی تفصیلات کے اندر CSI والیوم کا حوالہ دیں۔ یہ خصوصی طور پر ریموٹ ڈیٹا اسٹوریج کے طور پر CSI کے استعمال پر پابندی کو ہٹاتا ہے۔، ان کے لیے دنیا کے دروازے کھول رہے ہیں۔ مقامی عارضی حجم. استعمال کیلئے (دستاویزات سے مثال) کو فعال کرنا ضروری ہے۔ CSIInlineVolume خصوصیت گیٹ.

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

یہ سب اس حقیقت کا باعث بنے کہ الفا ورژن تک پہنچ گیا۔ نقل مکانی کا عمل اندرونی پلگ ان کوڈ, CSI پلگ انز میں ان-ٹری کے طور پر لاگو کیا گیا ہے، جس کی بدولت ڈویلپرز کی پریشانیاں ان کے پلگ انز کے ایک ورژن کو سپورٹ کرنے پر کم ہو جائیں گی، اور پرانے APIs کے ساتھ مطابقت برقرار رہے گی اور انہیں معمول کے منظر نامے میں متروک قرار دیا جا سکتا ہے۔ توقع ہے کہ Kubernetes (1.15) کی اگلی ریلیز تک تمام کلاؤڈ فراہم کنندہ پلگ انز کو منتقل کر دیا جائے گا، نفاذ کو بیٹا کا درجہ ملے گا اور K8s تنصیبات میں بطور ڈیفالٹ چالو ہو جائے گا۔ تفصیلات کے لیے دیکھیں ڈیزائن کی تجویز. اس ہجرت کا نتیجہ بھی نکلا۔ ردعمل مخصوص کلاؤڈ فراہم کنندگان (AWS، Azure، GCE، Cinder) کے ذریعہ بیان کردہ حجم کی حدود سے۔

مزید برآں، CSI کے ساتھ بلاک ڈیوائسز کے لیے سپورٹ (CSIBlockVolume) منتقل بیٹا ورژن میں۔

نوڈس/کوبیلیٹ

الفا ورژن پیش کیا گیا۔ نیا اختتامی نقطہ کوبیلیٹ میں، کے لیے ڈیزائن کیا گیا ہے۔ کلیدی وسائل پر میٹرکس واپس کریں۔. عام طور پر، اگر پہلے Kubelet کو cAdvisor سے کنٹینر کے استعمال کے اعدادوشمار موصول ہوتے تھے، تو اب یہ ڈیٹا CRI (کنٹینر رن ٹائم انٹرفیس) کے ذریعے کنٹینر رن ٹائم ماحول سے آتا ہے، لیکن Docker کے پرانے ورژن کے ساتھ کام کرنے کی مطابقت بھی محفوظ ہے۔ پہلے، کوبیلیٹ میں جمع کیے گئے اعدادوشمار REST API کے ذریعے بھیجے جاتے تھے، لیکن اب ایک اختتامی نقطہ پر واقع ہے /metrics/resource/v1alpha1. ڈویلپرز کی طویل مدتی حکمت عملی مشتمل Kubelet کی طرف سے فراہم کردہ میٹرکس کے سیٹ کو کم سے کم کرنا ہے۔ ویسے، یہ میٹرکس خود اب وہ فون کرتے ہیں "بنیادی میٹرکس" نہیں، بلکہ "وسائل میٹرکس"، اور "فرسٹ کلاس وسائل، جیسے سی پی یو، اور میموری" کے طور پر بیان کیے گئے ہیں۔

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

"gRPC بڑی مانیٹرنگ پائپ لائنوں کے ساتھ مطابقت نہیں رکھتا ہے۔ اختتامی نقطہ صرف میٹرکس سرور کو میٹرکس فراہم کرنے یا اس کے ساتھ براہ راست مربوط ہونے والے اجزاء کی نگرانی کے لیے مفید ہوگا۔ میٹرکس سرور میں کیشنگ کا استعمال کرتے وقت پرومیتھیس ٹیکسٹ فارمیٹ کی کارکردگی کافی اچھا کمیونٹی میں پرومیتھیس کو بڑے پیمانے پر اپنانے کے پیش نظر ہمارے لیے gRPC پر Prometheus کو ترجیح دینا۔ ایک بار جب OpenMetrics فارمیٹ زیادہ مستحکم ہو جائے گا، تو ہم پروٹو پر مبنی فارمیٹ کے ساتھ gRPC کی کارکردگی سے رجوع کر سکیں گے۔"

Kubernetes 1.14: اہم اختراعات کا جائزہ
میٹرکس کے لیے نئے Kubelet اینڈ پوائنٹ میں gRPC اور Prometheus فارمیٹس کے استعمال کے تقابلی کارکردگی کے ٹیسٹوں میں سے ایک۔ مزید گراف اور دیگر تفصیلات اس میں مل سکتی ہیں۔ CAP.

دیگر تبدیلیوں کے درمیان:

  • کوبیلیٹ اب (ایک بار) روکنے کی کوشش کر رہا ہے آپریشن کو دوبارہ شروع کرنے اور حذف کرنے سے پہلے کنٹینرز نامعلوم حالت میں ہیں۔
  • استعمال کرتے وقت PodPresets اب init کنٹینر پر شامل کیا گیا ہے ایک باقاعدہ کنٹینر کے طور پر ایک ہی معلومات.
  • کوبیلیٹ استعمال کرنا شروع کر دیا usageNanoCores CRI شماریات فراہم کرنے والے سے، اور ونڈوز پر نوڈس اور کنٹینرز کے لیے شامل کیا نیٹ ورک کے اعداد و شمار
  • آپریٹنگ سسٹم اور فن تعمیر کی معلومات اب لیبلز میں ریکارڈ کی جاتی ہیں۔ kubernetes.io/os и kubernetes.io/arch نوڈ آبجیکٹ (بیٹا سے GA میں منتقل)۔
  • پوڈ میں کنٹینرز کے لیے مخصوص سسٹم صارف گروپ کی وضاحت کرنے کی اہلیت (RunAsGroupمیں نمودار ہوا۔ K8s 1.11) ترقی یافتہ بیٹا سے پہلے (بطور ڈیفالٹ فعال)۔
  • du اور cAdvisor میں استعمال کیا جاتا ہے، تبدیل کر دیا گیا گو نفاذ پر۔

CLI

cli-runtime اور kubectl میں شامل کیا کے ساتھ انضمام کے لیے k پرچم اپنی مرضی کے مطابق بنائیں (ویسے، اس کی ترقی اب ایک علیحدہ ذخیرہ میں کی جاتی ہے)، یعنی خصوصی کسٹمائزیشن ڈائریکٹریز سے اضافی YAML فائلوں پر کارروائی کرنے کے لیے (ان کے استعمال سے متعلق تفصیلات کے لیے، دیکھیں CAP):

Kubernetes 1.14: اہم اختراعات کا جائزہ
سادہ فائل کے استعمال کی مثال حسب ضرورت (کسٹمائز کا زیادہ پیچیدہ اطلاق اس کے اندر ممکن ہے۔ اووریاں)

اس کے علاوہ:

  • شامل کیا گیا۔ نئی ٹیم kubectl create cronjob، جس کا نام خود بولتا ہے۔
  • В kubectl logs اب آپ کر سکتے ہیں جمع کرنا جھنڈے -f (--follow سٹریمنگ لاگز کے لیے) اور -l (--selector لیبل کے استفسار کے لیے)۔
  • کیوبیکٹل سکھایا وائلڈ کارڈ کے ذریعے منتخب فائلوں کو کاپی کریں۔
  • ٹیم کو kubectl wait شامل کیا پرچم --all مخصوص وسائل کی قسم کے نام کی جگہ میں تمام وسائل کو منتخب کرنے کے لیے۔

دیگر

درج ذیل صلاحیتوں کو مستحکم (GA) کا درجہ ملا ہے:

Kubernetes 1.14 میں متعارف کرائی گئی دیگر تبدیلیاں:

  • ڈیفالٹ RBAC پالیسی اب API تک رسائی کی اجازت نہیں دیتی ہے۔ discovery и access-review بغیر تصدیق کے صارفین (غیر تصدیق شدہ).
  • سرکاری کور ڈی این ایس سپورٹ فراہم کی صرف لینکس، لہذا جب kubeadm کا استعمال کرتے ہوئے اسے (CoreDNS) کو کلسٹر میں تعینات کرنے کے لیے، نوڈس کو صرف لینکس پر چلنا چاہیے (اس حد کے لیے نوڈ سلیکٹر استعمال کیے جاتے ہیں)۔
  • پہلے سے طے شدہ CoreDNS کنفیگریشن اب ہے۔ استعمال کرتا ہے آگے پلگ ان پراکسی کے بجائے. نیز، CoreDNS میں شامل کیا ریڈینس پروب، جو مناسب (سروس کے لیے تیار نہیں) پوڈز پر بوجھ کے توازن کو روکتا ہے۔
  • kubeadm میں، مراحل پر init یا upload-certs, ممکن ہو گیا نئے کنٹرول پلین کو kubeadm-certs secret سے منسلک کرنے کے لیے درکار سرٹیفکیٹس لوڈ کریں (پرچم کا استعمال کریں --experimental-upload-certs).
  • ونڈوز انسٹالیشنز کے لیے الفا ورژن سامنے آیا ہے۔ کی حمایت gMSA (گروپ مینیجڈ سروس اکاؤنٹ) - ایکٹو ڈائریکٹری میں خصوصی اکاؤنٹس جو کنٹینرز کے ذریعے بھی استعمال کیے جا سکتے ہیں۔
  • G.C.E کے لیے چالو etcd اور kube-apiserver کے درمیان mTLS انکرپشن۔
  • استعمال شدہ / منحصر سافٹ ویئر میں اپ ڈیٹس: Go 1.12.1، CSI 1.1، CoreDNS 1.3.1، Docker 18.09 kubeadm میں سپورٹ، اور کم از کم تعاون یافتہ Docker API ورژن اب 1.26 ہے۔

PS

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

ماخذ: www.habr.com

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