ڇا اهو آسان ۽ آسان آهي هڪ Kubernetes ڪلستر تيار ڪرڻ؟ اضافو آپريٽر جو اعلان

ڇا اهو آسان ۽ آسان آهي هڪ Kubernetes ڪلستر تيار ڪرڻ؟ اضافو آپريٽر جو اعلان

کان پوء شيل آپريٽر اسان هن جي وڏي ڀاء کي پيش ڪريون ٿا - اضافو آپريٽر. هي هڪ اوپن سورس پروجيڪٽ آهي جيڪو سسٽم جي اجزاء کي ڪبرنيٽس ڪلستر ۾ انسٽال ڪرڻ لاءِ استعمال ڪيو ويندو آهي، جنهن کي ايڊ-آنز چئي سگهجي ٿو.

ڇو ته سڀ ڪجهه اضافو؟

اهو ڪو به راز ناهي ته ڪبرنيٽس هڪ تيار ڪيل آل ان ون پراڊڪٽ ناهي، ۽ هڪ "بالغ" ڪلستر ٺاهڻ لاء توهان کي مختلف اضافو جي ضرورت پوندي. Addon-operator توهان جي مدد ڪندو توهان کي انسٽال ڪرڻ، ترتيب ڏيڻ ۽ انهن ايڊونز کي اپڊيٽ رکڻ ۾.

ڪلستر ۾ اضافي اجزاء جي ضرورت کي ظاهر ڪيو ويو آهي رپورٽ ساٿي ڊريشا. مختصر ۾، هن وقت ڪبرنيٽس جي صورتحال اهڙي آهي ته هڪ سادي “راند کيڏڻ” جي انسٽاليشن لاءِ توهان حاصل ڪري سگهو ٿا اجزاء سان گڏ باڪس مان، ڊولپرز ۽ ٽيسٽ لاءِ توهان Ingress شامل ڪري سگهو ٿا، پر مڪمل انسٽاليشن لاءِ، جنهن بابت. توهان چئي سگهو ٿا ”توهان جي پيداوار تيار آهي“، توهان کي هڪ درجن مختلف اضافو شامل ڪرڻ جي ضرورت آهي: ڪجهه مانيٽرنگ لاءِ، ڪجهه لاگنگ لاءِ، نه وساريو داخلا ۽ سرٽيفڪيشن مئنيجر، نوڊس جا گروپ چونڊيو، نيٽ ورڪ پاليسيون شامل ڪريو، موسم sysctl ۽ پوڊ آٽو اسڪيلر سيٽنگن سان ...

ڇا اهو آسان ۽ آسان آهي هڪ Kubernetes ڪلستر تيار ڪرڻ؟ اضافو آپريٽر جو اعلان

انهن سان گڏ ڪم ڪرڻ جون خاصيتون ڇا آهن؟

جيئن ته عملي طور ڏيکاري ٿو، معاملو هڪ تنصيب تائين محدود ناهي. ڪلسٽر سان آرام سان ڪم ڪرڻ لاءِ، ايڊ-آنز کي اپڊيٽ ڪرڻ، بند ڪرڻ (ڪلسٽر مان هٽايو ويو) ڪرڻ جي ضرورت پوندي، ۽ توھان انھن کي پروڊڪشن ڪلسٽر ۾ انسٽال ڪرڻ کان پھريائين ڪجھ ٽيسٽ ڪرڻ چاھيو ٿا.

تنهن ڪري، ٿي سگهي ٿو جوابي هتي ڪافي ٿيندو؟ ٿي سگهي ٿو. پر عام طور تي، مڪمل اضافو اضافو سيٽنگن کان سواء نه رهندا آهن. اهي سيٽنگون مختلف ٿي سگهن ٿيون ڪلستر جي مختلف قسم جي لحاظ کان (aws, gce, azure, bare-metal, do, ...). ڪجھ سيٽنگون اڳ ۾ بيان نه ڪري سگھجن ٿيون؛ انھن کي ڪلستر مان حاصل ڪيو وڃي. ۽ ڪلستر جامد نه آهي: ڪجهه سيٽنگن لاءِ توهان کي تبديلين جي نگراني ڪرڻي پوندي. ۽ هتي جوابي اڳ ۾ ئي غائب آهي: توهان کي هڪ پروگرام جي ضرورت آهي جيڪا ڪلستر ۾ رهي ٿي، يعني. ڪبرنيٽس آپريٽر.

جن ان ڪم تي ڪوشش ڪئي شيل آپريٽر، اهي چون ٿا ته انسٽال ڪرڻ ۽ تازه ڪاري ڪرڻ جا ڪم اضافا ۽ نگراني سيٽنگون استعمال ڪندي مڪمل طور تي حل ڪري سگھجن ٿا. ٿلهو شيل آپريٽر لاء. توهان هڪ اسڪرپٽ لکي سگهو ٿا جيڪو هڪ مشروط ڪندو kubectl apply ۽ مانيٽر، مثال طور، ConfigMap، جتي سيٽنگون محفوظ ڪيون وينديون. اهو تقريبن آهي جيڪو اضافو آپريٽر ۾ لاڳو ڪيو ويو آهي.

ايڊون آپريٽر ۾ اهو ڪيئن منظم آهي؟

جڏهن هڪ نئون حل ٺاهي، اسان هيٺ ڏنل اصولن تي عمل ڪيو:

  • اضافو انسٽالر کي سپورٽ ڪرڻ گهرجي templating ۽ declarative تشڪيل. اسان جادو اسڪرپٽ نه ٺاهيندا آهيون جيڪي اضافو انسٽال ڪندا آهن. ايڊون آپريٽر ايڊون انسٽال ڪرڻ لاءِ هيلم استعمال ڪري ٿو. انسٽال ڪرڻ لاء، توهان کي هڪ چارٽ ٺاهڻ جي ضرورت آهي ۽ قيمتون چونڊيو جيڪي ترتيب ڏيڻ لاء استعمال ڪيا ويندا.
  • سيٽنگون ٿي سگهن ٿيون انسٽاليشن تي پيدا ڪريو، اهي ڪري سگهن ٿا ڪلستر مان حاصل ڪريو، يا اپڊيٽ حاصل ڪريوڪلستر وسيلن جي نگراني. اهي آپريشن ٿلهو استعمال ڪندي لاڳو ڪري سگھجن ٿيون.
  • سيٽنگون ٿي سگهن ٿيون هڪ ڪلستر ۾ اسٽور. ڪلستر ۾ سيٽنگون ذخيرو ڪرڻ لاء، هڪ ConfigMap/addon-operator ٺاهيو ويو آهي ۽ Addon-operator هن ConfigMap ۾ تبديلين جي نگراني ڪندو آهي. Addon-operator آسان ڪنوينشن استعمال ڪندي سيٽنگون تائين رسائي ڏئي ٿو.
  • اضافو سيٽنگن تي منحصر آهي. جيڪڏهن سيٽنگون تبديل ٿي ويون آهن، ته پوءِ ايڊون آپريٽر هيلم چارٽ کي نون قدرن سان گڏ ڪري ٿو. اسان هيلم چارٽ جي ميلاپ کي سڏيو، ان لاء قدر ۽ هڪ ماڊل ٿلهو (وڌيڪ تفصيل لاء هيٺ ڏسو).
  • اسٽيجنگ. ڪو به جادو رليز اسڪرپٽ نه آهن. اپڊيٽ ميڪانيزم هڪ باقاعده ايپليڪيشن وانگر آهي - هڪ تصوير ۾ اضافو ۽ اضافو آپريٽرز گڏ ڪريو، انهن کي ٽيگ ڪريو ۽ انهن کي رول آئوٽ ڪريو.
  • نتيجو ڪنٽرول. Addon-operator Prometheus لاءِ ميٽرڪ مهيا ڪري سگھي ٿو.

addon-operator ۾ padding ڇا آهي؟

ھڪڙو اضافو ڪجھھ سمجھي سگھجي ٿو جيڪو ڪلستر ۾ نوان افعال شامل ڪري ٿو. مثال طور، Ingress انسٽال ڪرڻ هڪ اضافو جو هڪ بهترين مثال آهي. هي ڪنهن به آپريٽر يا ڪنٽرولر ٿي سگهي ٿو پنهنجي CRD سان: پرومٿيوس-آپريٽر، سرٽيف مئنيجر، ڪوبي-ڪنٽرولر-منيجر، وغيره. يا ڪجھ ننڍو، پر استعمال ڪرڻ آسان - مثال طور، ڳجھي ڪاپيئر، جيڪو رجسٽري رازن کي نئين نالن جي جڳھن تي نقل ڪري ٿو، يا sysctl tuner، جيڪو sysctl parameters کي نئين نوڊس تي ترتيب ڏئي ٿو.

اضافو لاڳو ڪرڻ لاءِ، ايڊون آپريٽر ڪيترن ئي تصورن کي مهيا ڪري ٿو:

  • هيلم چارٽ ڪلستر ۾ مختلف سافٽ ويئر انسٽال ڪرڻ لاءِ استعمال ڪيو ويو - مثال طور، پروميٿيوس، گرافانا، نينڪس-انگريس. جيڪڏھن گھربل جزو ۾ ھيلم چارٽ آھي ته پوءِ ان کي انسٽال ڪرڻ Adon-operator استعمال ڪرڻ بلڪل سادو ھوندو.
  • قدرن جو ذخيرو. هيلم چارٽس عام طور تي ڪيتريون ئي مختلف سيٽنگون آهن جيڪي وقت سان تبديل ٿي سگهن ٿيون. Addon-operator انهن سيٽنگن کي محفوظ ڪرڻ جي حمايت ڪري ٿو ۽ هيلم چارٽ کي نئين قدرن سان ٻيهر انسٽال ڪرڻ لاءِ انهن جي تبديلين جي نگراني ڪري سگهي ٿو.
  • ٿلهو قابل عمل فائلون آھن جيڪي Addon-operator ايونٽس تي ھلنديون آھن ۽ جيڪي ويلز اسٽور تائين پھچنديون آھن. ٿلهو ڪلستر ۾ تبديلين جي نگراني ڪري سگھي ٿو ۽ قدرن جي دڪان ۾ قدرن کي اپڊيٽ ڪري سگھي ٿو. اهي. ٿلهو استعمال ڪندي، توهان دريافت ڪري سگهو ٿا ڪلسٽر مان قيمتون گڏ ڪرڻ لاءِ شروعاتي وقت يا شيڊول مطابق، يا توهان مسلسل دريافت ڪري سگهو ٿا، ڪلسٽر ۾ تبديلين جي بنياد تي ڪلسٽر مان قدر گڏ ڪري.
  • ماڊلول هيلم چارٽ جو هڪ مجموعو آهي، هڪ قدر اسٽور ۽ ٿلهو. ماڊلز کي فعال يا غير فعال ڪري سگھجي ٿو. هڪ ماڊل کي غير فعال ڪرڻ جو مطلب آهي سڀني هيلم چارٽ رليز کي ختم ڪرڻ. ماڊلز پاڻ کي متحرڪ طور تي چالو ڪري سگھن ٿا، مثال طور، جيڪڏھن سڀ ماڊيولز ان کي چالو ڪيا ويا آھن يا جيڪڏھن دريافت کي ٿلهن ۾ ضروري پيرا ميٽر مليا آھن - اھو ڪيو ويندو آھي ھڪ معاون فعال اسڪرپٽ استعمال ڪندي.
  • گلوبل ٿلهو. اهي ٿلها ”پنهنجي پاڻ تي“ آهن، اهي ماڊلز ۾ شامل نه آهن ۽ انهن کي عالمي قدرن جي دڪان تائين رسائي آهي، اهي قدر جيڪي ماڊيول ۾ موجود سڀني ٿلهن لاءِ موجود آهن.

اهي حصا ڪيئن گڏجي ڪم ڪن ٿا؟ اچو ته دستاويز مان تصوير ڏسو:

ڇا اهو آسان ۽ آسان آهي هڪ Kubernetes ڪلستر تيار ڪرڻ؟ اضافو آپريٽر جو اعلان

ڪم جا ٻه منظر آهن:

  1. عالمي ٿلهو هڪ واقعي جي ذريعي شروع ٿئي ٿو - مثال طور، جڏهن ڪلستر ۾ هڪ وسيلو تبديل ٿئي ٿو. هي ٿلهو تبديلين تي عمل ڪري ٿو ۽ عالمي قدرن جي دڪان تي نوان قدر لکي ٿو. Addon-operator نوٽيس ٿو ته گلوبل اسٽوريج تبديل ٿي چڪو آهي ۽ سڀني ماڊلز کي شروع ڪري ٿو. هر ماڊل، ان جي ٿلهن کي استعمال ڪندي، اهو طئي ڪري ٿو ته ڇا ان کي فعال ٿيڻ جي ضرورت آهي ۽ ان جي قيمتن جي دڪان کي تازه ڪاري ڪري ٿو. جيڪڏهن ماڊل فعال آهي، Addon-operator Helm چارٽ جي انسٽاليشن شروع ڪري ٿو. انهي صورت ۾، هيلم چارٽ کي ماڊيول اسٽوريج ۽ گلوبل اسٽوريج مان قدر تائين رسائي آهي.
  2. ٻيو منظر آسان آهي: هڪ ماڊل ٿلهو هڪ واقعي جي ذريعي شروع ٿئي ٿو ۽ ماڊل جي قدرن جي دڪان ۾ قدر تبديل ڪري ٿو. Addon-operator هن کي نوٽيس ڪري ٿو ۽ هيلم چارٽ کي اپڊيٽ ڪيل قدرن سان شروع ڪري ٿو.

اضافي طور تي لاڳو ٿي سگھي ٿو ھڪڙي ھڪڙي ٿلهو، يا ھڪڙي ھيلم چارٽ جي طور تي، يا جيتوڻيڪ ڪيترن ئي منحصر ماڊلز جي طور تي - اهو منحصر آهي اجزاء جي پيچيدگي تي جيڪو ڪلستر ۾ نصب ڪيو وڃي ٿو ۽ ترتيب جي لچڪ جي گهربل سطح تي. مثال طور، مخزن ۾ (/مثال) اتي ھڪڙو sysctl-tuner add-on آھي، جيڪو ھڪڙي سادي ماڊل جي طور تي ھڪ ۽ ھيلم چارٽ سان لاڳو ڪيو ويو آھي، ۽ ويلز اسٽور کي استعمال ڪندي، جيڪو ConfigMap کي تبديل ڪندي سيٽنگون شامل ڪرڻ ممڪن بڻائي ٿو.

تازه ڪاري جي ترسيل

اجزاء جي تازه ڪاري کي منظم ڪرڻ بابت ڪجھ لفظ جيڪي Addon-operator انسٽال ڪري ٿو.

ڪلستر ۾ Addon-operator کي هلائڻ لاءِ، توھان کي ضرورت آھي اضافو سان هڪ تصوير ٺاهيو ٿلهو ۽ هيلم چارٽ فائلن جي صورت ۾، بائنري فائل شامل ڪريو addon-operator ۽ هر شيء جيڪا توهان کي ٿلهو جي ضرورت آهي: bash, kubectl, jq, python وغيره پوءِ ھي تصوير ڪلستر ڏانھن ھڪڙي باقاعده ايپليڪيشن جي طور تي رول آئوٽ ڪري سگھجي ٿو، ۽ گھڻو ڪري توھان چاھيو ٿا ھڪڙي يا ٻي ٽيگنگ اسڪيم کي منظم ڪرڻ. جيڪڏهن ڪجھ ڪلسٽر آهن، ساڳيو طريقو ايپليڪيشنن سان مناسب ٿي سگهي ٿو: نئون رليز، نئون ورزن، سڀني ڪلستر ذريعي وڃو ۽ پوڊ جي تصوير کي درست ڪريو. جڏهن ته، هڪ اهم تعداد ۾ ڪلستر جي رول آئوٽ جي صورت ۾، هڪ چينل مان خود اپ ڊيٽ ڪرڻ جو تصور اسان لاءِ وڌيڪ موزون هو.

هتي آهي اسان اهو ڪيئن ڪندا آهيون:

  • هڪ چينل بنيادي طور تي هڪ سڃاڻپ ڪندڙ آهي جيڪو ڪنهن به شيء تي مقرر ڪري سگهجي ٿو (مثال طور، dev/stage/ea/stable).
  • چينل جو نالو تصويري ٽيگ آھي. جڏهن توهان کي هڪ چينل تي تازه ڪاري ڪرڻ جي ضرورت آهي، هڪ نئين تصوير گڏ ڪئي وئي آهي ۽ چينل جي نالي سان ٽيگ ڪيو ويو آهي.
  • جڏهن رجسٽري ۾ هڪ نئين تصوير ظاهر ٿئي ٿي، Addon-operator کي ٻيهر شروع ڪيو ويو آهي ۽ نئين تصوير سان شروع ڪيو ويو آهي.

اهو بهترين عمل ناهي، جيئن لکيو ويو آهي Kubernetes دستاويز. اهو ڪرڻ جي سفارش نه ڪئي وئي آهي، پر اسان بابت ڳالهائي رهيا آهيون هڪ باقاعده ايپليڪيشن جيڪا ساڳئي ڪلستر ۾ رهي ٿي. Addon-operator جي صورت ۾، هڪ ايپليڪيشن ڪلسترن ۾ پکڙيل ڪيترن ئي ڊيپلائيمينٽس آهي، ۽ خود اپڊيٽ ڪرڻ تمام گهڻي مدد ڪري ٿي ۽ زندگي کي آسان بڻائي ٿي.

چينل مدد ۽ جاچ ۾: جيڪڏهن ڪو معاون ڪلستر آهي، ته توهان ان کي چينل تي ترتيب ڏئي سگهو ٿا stage ۽ ان کي رول آئوٽ ڪرڻ کان پهريان ان ۾ تازه ڪاريون رول آئوٽ ڪريو ea и stable. جيڪڏهن چينل تي ڪلستر سان ea هڪ غلطي ٿي وئي، توهان ان کي تبديل ڪري سگهو ٿا stable، جڏهن ته هن ڪلستر سان مسئلو تحقيق ڪئي پئي وڃي. جيڪڏهن ڪلستر کي فعال سپورٽ مان ڪڍيو وڃي ٿو، اهو پنهنجي "منجمد" چينل ڏانهن تبديل ڪري ٿو - مثال طور، freeze-2019-03-20.

ٿلهو ۽ هيلم چارٽس کي اپڊيٽ ڪرڻ کان علاوه، توهان کي ضرورت هجي تازه ڪاري ۽ ٽئين پارٽي جو حصو. مثال طور، توهان مشروط نوڊ ايڪسپورٽر ۾ هڪ بگ محسوس ڪيو ۽ اهو به معلوم ڪيو ته ان کي ڪيئن پيچ ڪجي. اڳيون، توهان پي آر کوليو ۽ انتظار ڪري رهيا آهيو نئين رليز جي سڀني ڪلستر ذريعي وڃڻ ۽ تصوير جي نسخي کي وڌائڻ لاء. غير يقيني طور تي انتظار نه ڪرڻ لاء، توهان ٺاهي سگهو ٿا پنهنجو نوڊ-ايڪسپورٽر ۽ ان کي تبديل ڪرڻ کان پهريان پي آر قبول ڪرڻ کان اڳ.

عام طور تي، اهو بغير بغير ٿي سگهي ٿو Addon-operator، پر Addon-operator سان نوڊ ايڪسپورٽ کي نصب ڪرڻ لاء ماڊل هڪ مخزن ۾ نظر ايندو، توهان جي تصوير ٺاهڻ لاء Dockerfile اتي ئي رکي سگهجي ٿو، اهو سڀني شرڪت ڪندڙن لاء آسان ٿي ويندو. سمجھڻ جو عمل ڇا ٿئي ٿو... ۽ جيڪڏھن اتي ڪيترائي ڪلسٽر آھن، ته پوءِ اھو آسان ٿي وڃي ٿو ٻئي پنھنجي پي آر کي جانچڻ ۽ نئون ورزن رول آئوٽ ڪرڻ!

جزو جي تازه ڪاري جو هي ادارو اسان لاءِ ڪاميابيءَ سان ڪم ڪري ٿو، پر ڪنهن ٻئي مناسب اسڪيم تي عمل ڪري سگهجي ٿو - آخرڪار هن صورت ۾ Addon-operator هڪ سادي بائنري فائل آهي.

ٿڪل

Addon-operator ۾ لاڳو ڪيل اصول توهان کي ڪلستر ۾ اضافو ٺاهڻ، جانچڻ، انسٽال ڪرڻ ۽ تازه ڪاري ڪرڻ لاءِ شفاف عمل ٺاهڻ جي اجازت ڏين ٿا، ساڳي طرح باقاعده ايپليڪيشنن جي ترقي جي عمل سان.

Add-ons لاءِ Addon-operator ماڊل فارميٽ ۾ (Helm chart + hooks) عوامي طور تي دستياب ٿي سگھن ٿا. اسان، فلانٽ ڪمپني، اونهاري دوران اسان جي ترقيات کي اهڙين اضافو جي صورت ۾ شايع ڪرڻ جو منصوبو آهي. GitHub تي ترقي ۾ شامل ٿيو (شيل آپريٽر, اضافو آپريٽر) جي بنياد تي پنهنجو اضافو ٺاهڻ جي ڪوشش ڪريو مثالَ и دستاويز، Habré ۽ اسان جي خبرن جو انتظار ڪريو يوٽيوب چينل!

پي ايس

اسان جي بلاگ تي پڻ پڙهو:

جو ذريعو: www.habr.com

تبصرو شامل ڪريو