Kubernetes بهترين طريقا. صحيح بند ختم ڪريو

Kubernetes بهترين طريقا. ننڍو ڪنٽينر ٺاهڻ
Kubernetes بهترين طريقا. آرگنائيزيشن آف ڪبرنيٽس نالي جي جاءِ سان
Kubernetes بهترين طريقا. تياري ۽ جاندار ٽيسٽن سان ڪبرنيٽس جي زندگي جي تصديق ڪرڻ
Kubernetes بهترين طريقا. وسيلن جي درخواستن ۽ حدن کي ترتيب ڏيڻ

Kubernetes بهترين طريقا. صحيح بند ختم ڪريو

ورهايل سسٽم جي آپريشن ۾ هڪ اهم نقطو ناڪامي سنڀالڻ آهي. ڪبرنيٽس ان سان مدد ڪري ٿو ڪنٽرولرز کي استعمال ڪندي جيڪي توهان جي سسٽم جي صحت جي نگراني ڪن ٿا ۽ خدمتون ٻيهر شروع ڪن ٿيون جيڪي ڪم ڪرڻ بند ڪري ڇڏيون آهن. بهرحال، Kubernetes توهان جي ايپليڪيشنن کي زبردستي روڪي سگھي ٿو مجموعي طور تي سسٽم جي صحت کي يقيني بڻائڻ لاءِ. هن سلسلي ۾، اسان ڏسنداسين ته توهان ڪبرنيٽس کي ان جي ڪم کي وڌيڪ موثر طريقي سان ڪرڻ ۾ ڪيئن مدد ڪري سگهو ٿا ۽ ايپليڪيشن جي گھٽتائي کي گھٽائي سگهو ٿا.

ڪنٽينرز کان اڳ، اڪثر ايپليڪيشنون ورچوئل يا فزيڪل مشينن تي هلنديون هيون. جيڪڏهن ايپليڪيشن خراب ٿي وئي يا منجمد ٿي وئي، اهو هڪ ڊگهو وقت ورتو ڪم کي منسوخ ڪرڻ ۽ پروگرام کي ٻيهر لوڊ ڪرڻ ۾. بدترين حالتن ۾، ڪنهن کي هن مسئلي کي دستي طور تي رات جو، سڀ کان وڌيڪ غير مناسب ڪلاڪن ۾ حل ڪرڻو پوندو. جيڪڏهن صرف 1-2 ڪم ڪندڙ مشينون هڪ اهم ڪم ڪري رهيا هئا، اهڙي رڪاوٽ مڪمل طور تي ناقابل قبول هئي.
تنهن ڪري، دستي ريبوٽس جي بدران، انهن کي استعمال ڪرڻ شروع ڪيو پروسيس-سطح مانيٽرنگ خودڪار طور تي ايپليڪيشن کي ٻيهر شروع ڪرڻ لاءِ غير معمولي ختم ٿيڻ جي صورت ۾. جيڪڏهن پروگرام ناڪام ٿئي ٿو، مانيٽرنگ عمل نڪرڻ واري ڪوڊ کي پڪڙي ٿو ۽ سرور کي ريبوٽ ڪري ٿو. ڪبرنيٽس وانگر سسٽم جي اچڻ سان، سسٽم جي ناڪامي جي هن قسم جو جواب صرف انفراسٽرڪچر ۾ ضم ڪيو ويو.

ڪبرنيٽس هڪ مشاهدو-فرق-عمل-ايڪشن لوپ استعمال ڪري ٿو انهي کي يقيني بڻائڻ لاءِ ته وسيلا صحتمند رهن جيئن اهي پاڻ ڪنٽينر کان نوڊس ڏانهن سفر ڪن.

Kubernetes بهترين طريقا. صحيح بند ختم ڪريو

هن جو مطلب آهي ته توهان کي دستي طور تي عمل جي نگراني کي هلائڻ جي ضرورت ناهي. جيڪڏهن ڪو وسيلو صحت جي چڪاس ۾ ناڪام ٿئي ٿو، ڪبرنيٽس پاڻمرادو ان کي متبادل سان مهيا ڪندو. بهرحال، ڪبرنيٽس گهڻو ڪجهه ڪري ٿو صرف توهان جي ايپليڪيشن کي ناڪامي جي نگراني ڪرڻ کان. اهو ڪيترن ئي مشينن تي هلائڻ لاءِ ايپليڪيشن جون وڌيڪ ڪاپيون ٺاهي سگھي ٿو، ايپليڪيشن کي اپڊيٽ ڪري سگھي ٿو، يا هڪ ئي وقت توهان جي ايپليڪيشن جا ڪيترائي ورجن هلائي سگهي ٿو.
تنهن ڪري، اهڙا ڪيترائي سبب آهن ڇو ته ڪبرنيٽس مڪمل طور تي صحتمند ڪنٽينر کي ختم ڪري سگھن ٿا. مثال طور، جيڪڏهن توهان پنهنجي مقرري کي اپڊيٽ ڪيو ٿا، Kubernetes آهستي آهستي پراڻا پوڊ بند ڪري ڇڏيندو جڏهن ته نوان شروع ڪندا. جيڪڏهن توهان هڪ نوڊ کي بند ڪيو، ڪبرنيٽس ان نوڊ تي سڀني پوڊ کي هلائڻ بند ڪري ڇڏيندو. آخرڪار، جيڪڏهن هڪ نوڊ وسيلن کان ٻاهر هلندو آهي، ڪبرنيٽس انهن وسيلن کي آزاد ڪرڻ لاء سڀني پوڊ کي بند ڪري ڇڏيندو.

تنهن ڪري، اهو ضروري آهي ته توهان جي درخواست ختم ٿي وڃي گهٽ ۾ گهٽ اثر سان آخري صارف تي ۽ گهٽ ۾ گهٽ وصولي وقت. ان جو مطلب اهو آهي ته بند ڪرڻ کان اڳ، اهو ضروري آهي ته سڀني ڊيٽا کي محفوظ ڪرڻ جي ضرورت آهي، سڀني نيٽ ورڪ ڪنيڪشن کي بند ڪرڻ، باقي ڪم مڪمل ڪرڻ، ۽ ٻين تڪڙي ڪمن کي منظم ڪرڻ.

عملي طور تي، هن جو مطلب اهو آهي ته توهان جي ايپليڪيشن کي لازمي طور تي SIGTERM پيغام کي سنڀالڻ جي قابل هوندو، پروسيس ختم ٿيڻ جو سگنل جيڪو يونڪس آپريٽنگ سسٽم تي قتل يوٽيلٽي لاءِ ڊفالٽ سگنل آهي. هن پيغام کي حاصل ڪرڻ تي، ايپليڪيشن کي بند ڪرڻ گهرجي.

هڪ دفعو ڪبرنيٽس هڪ پوڊ کي ختم ڪرڻ جو فيصلو ڪري ٿو، ڪيترائي واقعا ٿين ٿا. اچو ته هر قدم تي نظر رکون ٿا جيڪو ڪبرنيٽس وٺندو آهي جڏهن ڪنٽينر يا پوڊ کي بند ڪيو وڃي.

اچو ته چوندا آهيون ته اسان پوڊ مان هڪ کي ختم ڪرڻ چاهيون ٿا. هن نقطي تي، اهو نئون ٽرئفڪ حاصل ڪرڻ بند ڪري ڇڏيندو - پوڊ ۾ هلندڙ ڪنٽينرز متاثر نه ٿيندا، پر سڀني نئين ٽرئفڪ کي بلاڪ ڪيو ويندو.

Kubernetes بهترين طريقا. صحيح بند ختم ڪريو

اچو ته ڏسو preStop ٿلهو، جيڪو هڪ خاص حڪم يا HTTP درخواست آهي جيڪو پوڊ ۾ ڪنٽينرز ڏانهن موڪليو ويو آهي. جيڪڏهن توهان جي ايپليڪيشن SIGTERM حاصل ڪرڻ وقت صحيح طريقي سان بند نه ٿئي، توهان صحيح طريقي سان بند ڪرڻ لاءِ پري اسٽاپ استعمال ڪري سگهو ٿا.

Kubernetes بهترين طريقا. صحيح بند ختم ڪريو

گھڻا پروگرام شاندار طريقي سان نڪرندا آھن جڏھن اھي SIGTERM سگنل وصول ڪندا آھن، پر جيڪڏھن توھان ٽئين پارٽي جو ڪوڊ يا ڪجھ سسٽم استعمال ڪري رھيا آھيو جنھن تي توھان مڪمل طور تي ڪنٽرول نه ڪندا آھيو، preStop ٿلهو ھڪڙو زبردست طريقو آھي جنھن کي زبردستي بند ڪرڻ لاءِ ايپليڪيشن کي تبديل ڪرڻ کان سواءِ.

هن ٿلهي تي عمل ڪرڻ کان پوء، ڪبرنيٽس پوڊ ۾ ڪنٽينرز ڏانهن هڪ SIGTERM سگنل موڪليندو، انهن کي ٻڌائيندو ته اهي جلد ئي ختم ٿي ويندا. هي سگنل حاصل ڪرڻ تي، توهان جو ڪوڊ بند ڪرڻ واري عمل ڏانهن اڳتي وڌندو. ھن عمل ۾ شامل ٿي سگھي ٿو ڪنھن به ڊگھي رھندڙ ڪنيڪشن کي روڪڻ جھڙوڪ ڊيٽابيس ڪنيڪشن يا WebSocket اسٽريم، موجوده حالت کي بچائڻ، ۽ جھڙوڪ.

جيتوڻيڪ جيڪڏهن توهان هڪ پري اسٽاپ ٿلهو استعمال ڪيو ٿا، اهو تمام ضروري آهي ته توهان جي ايپليڪيشن سان ڇا ٿئي ها جڏهن توهان ان کي SIGTERM سگنل موڪليندا آهيو، ۽ اهو ڪيئن عمل ڪندو آهي، انهي ڪري ته پوڊ بند ٿيڻ سبب واقعا يا سسٽم آپريشن ۾ تبديليون نه اچن. توهان لاء هڪ تعجب.

هن جاءِ تي، Kubernetes هڪ مخصوص وقت جو انتظار ڪندو، جنهن کي ٽرمينيشن گريس پيريڊ سيڪنڊ چئبو آهي، يا وڌيڪ قدم کڻڻ کان اڳ، هڪ SIGTERM سگنل وصول ڪرڻ وقت شاندار طور تي بند ٿيڻ جو عرصو.

Kubernetes بهترين طريقا. صحيح بند ختم ڪريو

ڊفالٽ طور هي عرصو 30 سيڪنڊ آهي. اهو نوٽ ڪرڻ ضروري آهي ته اهو پري اسٽاپ ٿلهو ۽ SIGTERM سگنل سان متوازي هلندو آهي. Kubernetes پري اسٽاپ ٿلهو ۽ SIGTERM جي ختم ٿيڻ جو انتظار نه ڪندو-جيڪڏهن توهان جي درخواست ختم ٿيڻ کان اڳ ختم ٿي وڃي ٿي GracePeriod ختم ٿي وڃي، Kubernetes فوري طور تي ايندڙ قدم تي هليو ويندو. تنهن ڪري، چيڪ ڪريو ته سيڪنڊن ۾ هن دور جي قيمت پوڊ کي صحيح طور تي بند ڪرڻ لاء گهربل وقت کان گهٽ نه آهي، ۽ جيڪڏهن اهو 30s کان وڌيڪ آهي، YAML ۾ گهربل قيمت تائين مدت وڌايو. ڏنل مثال ۾، اهو 60s آهي.

۽ آخرڪار، آخري قدم اهو آهي ته جيڪڏهن ڪنٽينر اڃا تائين ختم ٿيڻ کان پوء هلي رهيا آهن، اهي هڪ SIGKILL سگنل موڪليندا ۽ زبردستي ختم ٿي ويندا. هن موقعي تي، ڪبرنيٽس به ٻين سڀني پوڊ شين کي صاف ڪري ڇڏيندو.

Kubernetes بهترين طريقا. صحيح بند ختم ڪريو

Kubernetes ڪيترن ئي سببن جي ڪري پوڊس کي ختم ڪري ٿو، تنهن ڪري پڪ ڪريو ته توهان جي درخواست ڪنهن به صورت ۾ شاندار طور تي ختم ٿي وڃي ته هڪ مستحڪم خدمت کي يقيني بڻائي سگهجي.

Kubernetes بهترين طريقا. ٻاهرين خدمتن جو نقشو

ڪجھ اشتهار 🙂

اسان سان گڏ رهڻ لاء توهان جي مهرباني. ڇا توهان اسان جا مضمون پسند ڪندا آهيو؟ وڌيڪ دلچسپ مواد ڏسڻ چاهيو ٿا؟ آرڊر ڏيڻ يا دوستن کي سفارش ڪندي اسان جي مدد ڪريو، ڪلائوڊ VPS ڊولپرز لاءِ $4.99 کان, داخلا-سطح سرورز جو هڪ منفرد اينالاگ، جيڪو اسان توهان لاءِ ايجاد ڪيو هو: VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps جي باري ۾ سڄي حقيقت $19 کان يا سرور ڪيئن شيئر ڪجي؟ (RAID1 ۽ RAID10 سان دستياب آهي، 24 ڪور تائين ۽ 40GB DDR4 تائين).

ڊيل R730xd 2x سستا Equinix Tier IV ڊيٽا سينٽر ۾ Amsterdam ۾؟ صرف هتي 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV $199 کان هالينڊ ۾! ڊيل R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 کان! جي باري ۾ پڙهو انفراسٽرڪچر ڪارپوريشن ڪيئن ٺاهيو. ڪلاس ڊيل R730xd E5-2650 v4 سرورز جي استعمال سان 9000 يورو جي قيمت هڪ پني لاءِ؟

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

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