کل، 9 دسمبر، Kubernetes کی اگلی ریلیز - 1.17۔ اس روایت کے مطابق جو ہمارے بلاگ کے لیے تیار ہوئی ہے، ہم نئے ورژن میں اہم ترین تبدیلیوں کے بارے میں بات کرتے ہیں۔

اس مواد کو تیار کرنے کے لیے استعمال ہونے والی معلومات سرکاری اعلان سے لی گئی ہیں، , اور متعلقہ مسائل، پل کی درخواستیں، اور Kubernetes Enhancement Proposals (KEP)۔ تو کیا نیا هے؟..
ٹوپولوجی سے آگاہ روٹنگ
Kubernetes کمیونٹی کافی عرصے سے اس فیچر کا انتظار کر رہی تھی - ٹاپولوجی سے آگاہ سروس روٹنگ. اگر یہ اکتوبر 2018 میں شروع ہوتا ہے، اور سرکاری - 2 سال پہلے، معمول کے مسائل (جیسے ) - اور کچھ سال بڑے...
عام خیال یہ ہے کہ Kubernetes میں رہائش پذیر خدمات کے لیے "مقامی" روٹنگ کو نافذ کرنے کی صلاحیت فراہم کی جائے۔ اس معاملے میں "مقامی" کا مطلب ہے "ایک ہی ٹاپولوجیکل سطح" (ٹاپولوجی کی سطح)، جو ہو سکتا ہے:
- خدمات کے لیے یکساں نوڈ،
- ایک ہی سرور ریک،
- ایک ہی علاقہ
- وہی کلاؤڈ فراہم کنندہ،
- ...
اس خصوصیت کو استعمال کرنے کی مثالیں:
- ایک سے زیادہ دستیابی والے زون (ملٹی اے زیڈ) کے ساتھ کلاؤڈ تنصیبات میں ٹریفک پر بچت - دیکھیں۔ ایک ہی علاقے سے ٹریفک کی مثال استعمال کرتے ہوئے، لیکن AWS میں مختلف AZs؛
- کم کارکردگی میں تاخیر/بہتر تھرو پٹ؛
- ایک شارڈ سروس جس میں ہر شارڈ میں نوڈ کے بارے میں مقامی معلومات ہوتی ہیں۔
- ان ایپلی کیشنز کے ساتھ ایک ہی نوڈ پر روانی (یا اینالاگ) کی جگہ کا تعین جن کے لاگز جمع کیے گئے ہیں۔
- ...
اس طرح کی روٹنگ، جو ٹوپولوجی کے بارے میں "جانتی ہے" کو نیٹ ورک وابستگی بھی کہا جاتا ہے - اس کے ساتھ مشابہت سے , یا ظاہر ہوا؟ (اور )۔ نفاذ کی موجودہ سطح ServiceTopology Kubernetes میں - الفا ورژن۔
فیچر کیسے کام کرتا ہے اور آپ اسے پہلے سے کیسے استعمال کر سکتے ہیں اس بارے میں تفصیلات کے لیے پڑھیں مصنفین میں سے ایک سے۔
IPv4/IPv6 ڈوئل اسٹیک سپورٹ
اہم پیشرفت نیٹ ورک کی ایک اور خصوصیت میں: دو IP سٹیکس کے لیے بیک وقت سپورٹ، جو کہ پہلی بار متعارف کرایا گیا تھا۔ . خاص طور پر، نئی ریلیز میں درج ذیل تبدیلیاں آئیں:
- کیوب پراکسی میں دونوں طریقوں (IPv4 اور IPv6) میں بیک وقت آپریشن کا امکان؛
- в
Pod.Status.PodIPsنیچے کی طرف API کے لئے سپورٹ (ایک ہی وقت میں جیسا کہ میں/etc/hostsاب انہیں ایک IPv6 ایڈریس شامل کرنے کے لیے میزبان کی ضرورت ہوتی ہے؛ - دوہری اسٹیک سپورٹ (کوبرنیٹس ان ڈوکر) اور ;
- تازہ کاری شدہ e2e ٹیسٹ۔

KIND میں ڈوئل اسٹیک IPV4/IPv6 استعمال کرنا
CSI پر پیشرفت
مستحکم قرار دیا گیا۔ CSI پر مبنی اسٹوریج کے لیے، پہلے متعارف کرایا گیا .
کے لیے پہل حجم پلگ ان کی CSI میں منتقلی۔ - - بیٹا ورژن تک پہنچ گیا۔ موجودہ اسٹوریج پلگ ان کا ترجمہ کرنے کے لیے یہ خصوصیت اہم ہے۔ (درخت میں) ایک جدید انٹرفیس پر (CSI، درخت سے باہر) Kubernetes کے آخری صارفین کے لیے پوشیدہ۔ کلسٹر ایڈمنسٹریٹرز کو صرف CSI مائیگریشن کو فعال کرنے کی ضرورت ہوگی، جس کے بعد موجودہ ریاستی وسائل اور کام کا بوجھ "صرف کام" کرتے رہیں گے... لیکن Kubernetes کور میں شامل فرسودہ ڈرائیوروں کی بجائے جدید ترین CSI ڈرائیورز کا استعمال کریں۔
اس وقت، AWS EBS ڈرائیوروں کے لیے منتقلی بیٹا ورژن میں تیار ہے (kubernetes.io/aws-ebs) اور GCE PD (kubernetes.io/gce-pd)۔ دیگر سٹوریج کی سہولیات کے لیے پیشین گوئیاں حسب ذیل ہیں:

ہم نے اس بارے میں بات کی کہ K8s میں "روایتی" اسٹوریج سپورٹ کس طرح CSI میں آیا . اور CSI ہجرت کی بیٹا اسٹیٹس میں منتقلی کے لیے وقف ہے۔ پروجیکٹ بلاگ پر۔
اس کے علاوہ، CSI کے تناظر میں ایک اور اہم فعالیت، جو K1.17s 8 میں شروع ہوتی ہے (الفا نفاذ)، Kubernetes 1.12 ریلیز میں بیٹا کی حیثیت (یعنی ڈیفالٹ کے طور پر فعال) تک پہنچ گئی۔ اور ان سے بازیابی. بیٹا ریلیز کے راستے پر Kubernetes والیوم سنیپ شاٹ میں کی گئی تبدیلیوں میں سے:
- CSI بیرونی سنیپ شاٹر سائڈ کار کو دو کنٹرولرز میں تقسیم کرنا،
- حذف کرنے کے لیے راز شامل کر دیا گیا۔ (حذف کرنے کا راز) والیوم اسنیپ شاٹ کے مشمولات کی تشریح کے طور پر،
- نیا فائنلائزر (فائنلائزر) اسنیپ شاٹ API آبجیکٹ کو حذف ہونے سے روکنے کے لیے اگر باقی کنکشن موجود ہیں۔
ریلیز 1.17 کے وقت، فیچر کو تین CSI ڈرائیورز کی مدد حاصل ہے: GCE Persistent Disk CSI ڈرائیور، Portworx CSI ڈرائیور اور NetApp Trident CSI ڈرائیور۔ اس کے نفاذ اور استعمال کے بارے میں مزید تفصیلات اس میں مل سکتی ہیں۔ بلاگ پر
کلاؤڈ فراہم کرنے والے لیبلز
لیبل جو خود بخود استعمال شدہ کلاؤڈ فراہم کنندہ کے لحاظ سے تخلیق شدہ نوڈس اور حجم کو تفویض کیا گیا ہے۔K8s 1.2 کی ریلیز کے بعد سے، بہت طویل عرصے سے Kubernetes میں بیٹا ورژن کے طور پر دستیاب ہے۔ (اپریل 2016!). اتنے عرصے تک ان کے وسیع پیمانے پر استعمال کو دیکھتے ہوئے، ڈویلپرز ، کہ یہ فیچر کو مستحکم (GA) کا اعلان کرنے کا وقت ہے۔
لہذا، ان سب کا نام اسی کے مطابق رکھا گیا (ٹوپولاجی کے لحاظ سے):
-
beta.kubernetes.io/instance-type→node.kubernetes.io/instance-type -
failure-domain.beta.kubernetes.io/zone→topology.kubernetes.io/zone -
failure-domain.beta.kubernetes.io/region→topology.kubernetes.io/region
... لیکن اب بھی ان کے پرانے ناموں سے دستیاب ہیں (پیچھے کی طرف مطابقت کے لیے)۔ تاہم، تمام منتظمین کو موجودہ لیبلز پر سوئچ کرنے کی سفارش کی جاتی ہے۔ K8s کو اپ ڈیٹ کر دیا گیا ہے۔
kubeadm کی ساختی پیداوار
پہلی بار الفا ورژن میں پیش کیا گیا۔ . معاون فارمیٹس: JSON، YAML، Go ٹیمپلیٹ۔
اس خصوصیت کو لاگو کرنے کے لئے حوصلہ افزائی (کے مطابق ) ہے:
جب کہ Kubernetes کو دستی طور پر تعینات کیا جا سکتا ہے، اس آپریشن کے لیے ڈی فیکٹو (اگر ڈی جیور نہیں) کا معیار kubeadm کا استعمال کرنا ہے۔ مقبول سسٹمز مینجمنٹ ٹولز جیسے Terraform Kubernetes کی تعیناتی کے لیے kubeadm پر انحصار کرتے ہیں۔ کلسٹر API میں منصوبہ بند بہتریوں میں kubeadm اور cloud-init کے ساتھ Kubernetes بوٹسٹریپنگ کے لیے ایک کمپوز ایبل پیکیج شامل ہے۔
ساختی آؤٹ پٹ کے بغیر، پہلی نظر میں انتہائی بے ضرر تبدیلیاں بھی Terraform، Cluster API اور دوسرے سافٹ ویئر کو توڑ سکتی ہیں جو kubeadm کے نتائج کو استعمال کرتے ہیں۔
ہمارے فوری منصوبوں میں درج ذیل kubeadm کمانڈز کے لیے سپورٹ (سٹرکچرڈ آؤٹ پٹ کی شکل میں) شامل ہے:
-
alpha certs -
config images list -
init -
token create -
token list -
upgrade plan -
version
ایک کمانڈ پر JSON کے جواب کی مثال kubeadm init -o json:
{
"node0": "192.168.20.51:443",
"caCrt": "sha256:1f40ff4bd1b854fb4a5cf5d2f38267a5ce5f89e34d34b0f62bf335d74eef91a3",
"token": {
"id": "5ndzuu.ngie1sxkgielfpb1",
"ttl": "23h",
"expires": "2019-05-08T18:58:07Z",
"usages": [
"authentication",
"signing"
],
"description": "The default bootstrap token generated by 'kubeadm init'.",
"extraGroups": [
"system:bootstrappers:kubeadm:default-node-token"
]
},
"raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}دیگر بدعات کا استحکام
عام طور پر، Kubernetes 1.17 کی رہائی اس نعرے کے تحت ہوئی تھی۔استحکام" یہ اس حقیقت کی طرف سے سہولت فراہم کی گئی تھی کہ اس میں بہت سے خصوصیات (ان کی کل تعداد ہے 14) نے GA کا درجہ حاصل کیا۔ ان کے درمیان:
- کچھ شرائط کے مطابق نوڈس کو نشان زد کرنا () میں نمودار ہوا۔ ;
- - واقعات کی ایک نئی قسم جس کا ایک لیبل ہے کہ تمام اشیاء ایک مخصوص ورژن تک ہیں (
resourceVersion) پہلے ہی گھڑی کی طرف سے کارروائی کی گئی ہے؛ - اپنی مرضی کے وسائل کے لیے (ڈیفالٹنگ)
- پوڈ کے عمل کے نام کی جگہوں میں؛
-
ScheduleDaemonSetPods- kube-scheduler کا استعمال کرتے ہوئے (DemonSet کنٹرولر کے بجائے)؛ - نوڈ کی قسم پر منحصر حجم کی تعداد پر؛
- کے طور پر نصب ڈائریکٹری ناموں کے لیے
subPath; - ایک خصوصی لیز API کو؛
- "حتمی تحفظ" () لوڈ بیلنسرز کے لیے (لوڈ بیلنس کے وسائل کو حذف کرنے سے پہلے متعلقہ سروس کے وسائل کو چیک کرنا)؛
- کارکردگی میں جب اشیاء کے ایک جیسے سیٹوں کی نگرانی کرنے والی متعدد گھڑیوں کے ساتھ کام کرتے ہیں - ہر دیکھنے والے کے لئے ایک ہی اشیاء کے بار بار سیریلائزیشن سے گریز کرکے حاصل کیا جاتا ہے۔
دیگر تبدیلیاں۔
Kubernetes 1.17 میں ایجادات کی مکمل فہرست، یقیناً، اوپر دی گئی فہرستوں تک محدود نہیں ہے۔ یہاں کچھ دوسرے ہیں (اور مزید مکمل فہرست کے لیے، دیکھیں ):
- آخری ریلیز میں پیش کردہ فیچر بیٹا ورژن تک پہنچ گیا ہے۔ ;
- اسی طرح کی تبدیلی EndpointSlice API (K8s 1.16 سے بھی)، تاہم ابھی کے لیے Endpoint API کی کارکردگی/اسکیل ایبلٹی کو بہتر بنانے کے لیے یہ حل بطور ڈیفالٹ فعال نہیں ہے۔
- پوڈز اب کلسٹر آپریشن کے لیے اہم ہیں۔ نہ صرف نام کی جگہوں میں
kube-system(تفصیلات کے لیے، دستاویزات دیکھیں ); - کبلیٹ کے لیے نیا آپشن - — آپ کو سسٹم کے لیے مخصوص CPUs کی فہرست کو واضح طور پر بیان کرنے کی اجازت دیتا ہے۔
- لیے
kubectl logsنیا پرچم--prefix, لاگ کی ہر لائن میں پوڈ اور سورس کنٹینر کا نام شامل کرنا؛ - в
label.SelectorRequiresExactMatch; - kube-dns میں تمام کنٹینرز کم مراعات کے ساتھ؛
- ایک علیحدہ GitHub ذخیرہ میں الگ کیا گیا ہے اور اب اسے Kubernetes ریلیز میں شامل نہیں کیا جائے گا۔
- زیادہ سے زیادہ kube-proxy غیر UDP پورٹس کے لیے۔
انحصار تبدیلیاں:
- kubeadm میں شامل CoreDNS ورژن 1.6.5 ہے؛
- crictl ورژن v1.16.1 میں اپ ڈیٹ کیا گیا؛
- CSI 1.2.0;
- etcd 3.4.3؛
- تازہ ترین ٹیسٹ شدہ ڈوکر ورژن کو 19.03 میں اپ گریڈ کیا گیا ہے۔
- Kubernetes 1.17 بنانے کے لیے کم از کم گو ورژن 1.13.4 ہے۔
PS
ہمارے بلاگ پر بھی پڑھیں:
- «؛ "
- «؛ "
- «؛ "
- «'.
ماخذ: www.habr.com
