لوڊ بيلنسر - جڏهن هڪ اعتراض ٺاهي Service قسم سان LoadBalancer هڪ قسم جو بيلنس ٺاهي ٿو جيڪو ٻاهران ٽرئفڪ کي ڪلستر نوڊس ڏانهن سڌو رستو ڏيکاريندو. مثال طور، Yandex.Cloud ۾ توهان استعمال ڪري سگهو ٿا NetworkLoadBalancer и TargetGroup انهن مقصدن لاء؛
رستو - نوڊس جي وچ ۾ نيٽ ورڪ ٺاهي ٿو، ڇاڪاڻ ته Kubernetes جي ضرورتن مطابق، هر پوڊ کي پنهنجي IP پتي هجڻ گهرجي ۽ ڪنهن ٻئي پوڊ تائين پهچڻ جي قابل هوندو. انهن مقصدن لاءِ، توهان هڪ اوورلي نيٽ ورڪ استعمال ڪري سگهو ٿا (VXLAN، GENEVE) يا سڌو سنئون ڪلائوڊ فراهم ڪندڙ جي ورچوئل نيٽ ورڪ ۾ هڪ روٽنگ ٽيبل سيٽ ڪريو:
جلد - PVC ۽ SC استعمال ڪندي PV جي متحرڪ ترتيب جي اجازت ڏئي ٿي. شروعات ۾، اها ڪارڪردگي CCM جو حصو هئي، پر ان جي وڏي پيچيدگي جي ڪري ان کي هڪ الڳ پروجيڪٽ، ڪنٽينر اسٽوريج انٽرفيس (CSI) ڏانهن منتقل ڪيو ويو. اسان هڪ ڀيرو کان وڌيڪ CSI بابت ڳالهايو آهي لکيو ۽، جيئن اڳ ۾ ئي ذڪر ڪيو ويو آهي، جيتوڻيڪ آزاد ڪيو ويو CSI ڊرائيور.
اڳي، سڀ ڪوڊ ڪلائوڊ سان لهه وچڙ ۾ واقع هئا ڪبرنيٽس پروجيڪٽ جي مکيه گٽ مخزن ۾ k8s.io/kubernetes/pkg/cloudprovider/providers، پر انهن هڪ وڏي ڪوڊ بيس سان ڪم ڪرڻ جي تڪليف جي ڪري هن کي ڇڏڻ جو فيصلو ڪيو. سڀني پراڻن عملن کي منتقل ڪيو ويو آهي الڳ مخزن. وڌيڪ مدد ۽ ترقي جي سهولت لاء، سڀني گڏيل حصن کي پڻ منتقل ڪيو ويو الڳ مخزن.
جيئن ته CSI سان، ڪيترائي وڏا بادل فراهم ڪندڙ اڳ ۾ ئي ٺاهيا آهن انهن جي سي سي ايمز کي ڪبرنيٽس تي بادل کڻڻ لاء. جيڪڏهن فراهم ڪندڙ وٽ CCM نه آهي، پر سڀئي ضروري افعال API ذريعي دستياب آهن، ته پوء توهان CCM پاڻ لاڳو ڪري سگهو ٿا.
سي سي ايم جي پنهنجي عمل کي لکڻ لاء، اهو لاڳو ڪرڻ ڪافي آهي گهربل Go interfaces.
اسان ترقي شروع ڪيو (يا بلڪه، اڃا به استعمال) سان تيار (!) CCM Yandex.Cloud لاء هڪ سال اڳ.
بهرحال، هن عمل ۾ اسان غائب هئاسين:
JWT IAM ٽوڪن ذريعي تصديق؛
خدمت سنڀاليندڙ سپورٽ.
ليکڪ سان متفق (ڊليسن) ٽيليگرام ۾، اسان yandex-Cloud-controller-manager کي فورڪ ڪيو ۽ غائب ٿيل افعال شامل ڪيو.
مکيه خاصيتون
في الحال، سي سي ايم هيٺين انٽرفيس کي سپورٽ ڪري ٿو:
مثال;
زونز;
لوڊ بيلنسر.
مستقبل ۾، جڏهن Yandex.Cloud ترقي يافته VPC صلاحيتن سان ڪم ڪرڻ شروع ڪندو، اسان هڪ انٽرفيس شامل ڪنداسين رستا.
LoadBalanacer بنيادي چئلينج طور
شروعات ۾، اسان ڪوشش ڪئي، ٻين سي سي ايم جي عملن وانگر، جوڙو ٺاهڻ لاء LoadBalancer и TargetGroup هر هڪ لاء Service قسم سان LoadBalancer. بهرحال، Yandex.Cloud دريافت ڪيو هڪ دلچسپ حد: توهان استعمال نٿا ڪري سگهو TargetGroups ٽڪرائڻ سان Targets (جوڙو SubnetID - IpAddress).
تنهن ڪري، ٺاهيل CCM اندر، هڪ ڪنٽرولر شروع ڪيو ويو آهي، جيڪو، جڏهن شيون تبديل ڪري ٿي Node هر ورچوئل مشين تي سڀني انٽرفيس جي باري ۾ معلومات گڏ ڪري ٿي، انهن کي گروپن جي مطابق انهن جي مخصوص سان تعلق رکي ٿو NetworkID، پاران ٺاهي ٿو TargetGroup تي NetworkID، ۽ پڻ مطابقت جي نگراني ڪري ٿو. تنهن کان پوء، جڏهن هڪ اعتراض ٺاهي Service قسم سان LoadBalanacer اسان صرف اڳ ۾ ٺاهيل ڳنڍيندا آهيون TargetGroup نئين ڏانهن NetworkLoadBalanacerآهيان.
اشارو ظاهر ۾ ڊاريڪٽري جي سڃاڻپ ڪندڙ (folder-id) Yandex.Cloud؛
Yandex.Cloud API سان رابطي لاءِ سروس اڪائونٽ. منشور ۾ Secret ضروري آهي منتقلي اختيار ڪيل چابيون سروس اڪائونٽ مان. دستاويز ۾ بيان ڪيل, ڪيئن ٺاهيو هڪ خدمت اڪائونٽ ۽ چابيون حاصل ڪرڻ لاء.
اسان کي توهان جي راء حاصل ڪرڻ لاء خوش ٿيندو ۽ نوان مسئلاجيڪڏهن توهان ڪنهن پريشاني سان منهن ڪيو!
نتيجو
اسان گذريل ٻن هفتن کان پنجن ڪبرنيٽس ڪلسٽرز ۾ لاڳو ڪيل سي سي ايم استعمال ڪري رهيا آهيون ۽ ايندڙ مهيني ۾ انهن جو تعداد 20 تائين وڌائڻ جو منصوبو ٺاهيو. اسان في الحال وڏي ۽ نازڪ K8s تنصيب لاءِ CCM استعمال ڪرڻ جي سفارش نٿا ڪريون.
جيئن ته CSI جي صورت ۾، اسان کي خوشي ٿيندي جيڪڏهن Yandex ڊولپرز هن منصوبي جي ترقي ۽ حمايت تي عمل ڪن ٿا - اسان انهن جي درخواست تي مخزن کي منتقل ڪرڻ لاء تيار آهيون انهي ڪم سان معاملو ڪرڻ لاء جيڪي اسان لاء وڌيڪ لاڳاپيل آهن.