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

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

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

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

ڊفالٽ طور، هي عرصو 30 سيڪنڊ آهي. اهو نوٽ ڪرڻ ضروري آهي ته اهو پري اسٽاپ هُڪ ۽ سِگٽرم سگنل سان گڏ هلندو آهي. ڪُبرنيٽس پري اسٽاپ هُڪ ۽ سِگٽرم جي مڪمل ٿيڻ جو انتظار نه ڪندو - جيڪڏهن توهان جي ايپليڪيشن ٽرمينيشن گريس پيريڊ جي ختم ٿيڻ کان اڳ ختم ٿي ويندي آهي، ته ڪُبرنيٽس فوري طور تي ايندڙ قدم تي هلي ويندي. تنهن ڪري، پڪ ڪريو ته سيڪنڊن ۾ هي عرصو قدر گهٽ ۾ گهٽ پوڊ کي خوبصورتي سان ختم ڪرڻ لاءِ گهربل وقت جي برابر آهي. جيڪڏهن اهو 30 سيڪنڊن کان وڌيڪ آهي، ته پوءِ مدت کي YAML ۾ گهربل قدر تائين وڌايو. ڏنل مثال ۾، اهو 60 سيڪنڊ آهي.
آخرڪار، جيڪڏهن ڪو به ڪنٽينر ٽرمينيشن گريس پيريوڊ جي ختم ٿيڻ کان پوءِ به هلي رهيو آهي، ته اهي هڪ SIGKILL سگنل موڪليندا ۽ زبردستي ڊليٽ ڪيا ويندا. هن موقعي تي، ڪبرنيٽس باقي سڀني پوڊ شين کي به صاف ڪندو.

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

ڪجھ اشتهار 🙂
اسان سان گڏ رهڻ لاء توهان جي مهرباني. ڇا توهان اسان جا مضمون پسند ڪندا آهيو؟ وڌيڪ دلچسپ مواد ڏسڻ چاهيو ٿا؟ آرڊر ڏيڻ يا دوستن کي سفارش ڪندي اسان جي مدد ڪريو، , داخلا-سطح سرورز جو هڪ منفرد اينالاگ، جيڪو اسان توهان لاءِ ايجاد ڪيو هو: (RAID1 ۽ RAID10 سان دستياب آهي، 24 ڪور تائين ۽ 40GB DDR4 تائين).
ڊيل R730xd 2x سستا Equinix Tier IV ڊيٽا سينٽر ۾ Amsterdam ۾؟ صرف هتي هالينڊ ۾! ڊيل R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 کان! جي باري ۾ پڙهو
جو ذريعو: www.habr.com
