د ویشل شوي سیسټمونو په عملیاتو کې یو مهم ټکی د ناکامۍ اداره کول دي. Kubernetes پدې کې د کنټرولرونو په کارولو سره مرسته کوي چې ستاسو د سیسټم روغتیا څارنه کوي او هغه خدمات بیا پیل کوي چې کار یې بند کړی دی. په هرصورت، Kubernetes کولی شي په زور سره ستاسو غوښتنلیکونه ودروي ترڅو د ټول سیسټم روغتیا ډاډمن کړي. پدې لړ کې ، موږ به وګورو چې تاسو څنګه کولی شئ د کوبرنیټس سره مرسته وکړئ خپله دنده په مؤثره توګه ترسره کړئ او د غوښتنلیک وخت کم کړئ.
د کانټینرونو دمخه، ډیری غوښتنلیکونه په مجازی یا فزیکي ماشینونو کې روان وو. که چیرې اپلیکیشن غورځیدلی یا کنګل شوی وي ، نو دا ډیر وخت نیولی چې کار په پرمختګ کې لغوه کړي او برنامه بیا پورته کړي. په بدترین حالت کې، یو څوک باید دا ستونزه د شپې په لاسي ډول حل کړي، په خورا نامناسب ساعتونو کې. که یوازې 1-2 کاري ماشینونه مهم کار ترسره کړي، دا ډول ګډوډي په بشپړه توګه د منلو وړ نه وه.
له همدې امله ، د لاسي ریبوټونو پرځای ، دوی د غیر معمولي پای ته رسیدو په صورت کې د غوښتنلیک په اتوماتيک ډول بیا پیل کولو لپاره د پروسې کچې څارنې کارول پیل کړل. که چیرې برنامه ناکامه شي ، د څارنې پروسه د وتلو کوډ نیسي او سرور ریبوټ کوي. د کوبرنیټس په څیر د سیسټمونو په راتګ سره، د سیسټم ناکامیو ته دا ډول ځواب په ساده ډول په زیربنا کې مدغم شو.
کبرنیټس د مشاهدې - توپیر - عمل کولو پیښې لوپ کاروي ترڅو ډاډ ترلاسه کړي چې سرچینې صحي پاتې کیږي ځکه چې دوی پخپله له کانټینرونو څخه نوډونو ته سفر کوي.
دا پدې مانا ده چې تاسو نور اړتیا نلرئ په لاسي ډول د پروسې نظارت پرمخ وړئ. که کومه سرچینه د روغتیا معاینه ناکامه شي، کوبرنیټس به په ساده ډول دا د بدیل سره چمتو کړي. په هرصورت، Kubernetes د ناکامۍ لپاره ستاسو غوښتنلیک نظارت کولو څخه ډیر څه کوي. دا کولی شي په ډیری ماشینونو کې د چلولو لپاره د غوښتنلیک ډیرې کاپي رامینځته کړي، غوښتنلیک تازه کړي، یا ستاسو د غوښتنلیک ډیری نسخې په ورته وخت کې پرمخ بوځي.
له همدې امله، ډیری دلیلونه شتون لري چې ولې کوبرنیټس کولی شي یو بشپړ صحي کانټینر ختم کړي. د مثال په توګه، که تاسو خپل ځای پرځای کول نوي کړئ، Kubernetes به ورو ورو زاړه پوډونه ودروي پداسې حال کې چې نوي پیل کوي. که تاسو یو نوډ بند کړئ، کوبرنیټس به په دې نوډ کې د ټولو پوډونو چلول ودروي. په نهایت کې ، که چیرې یو نوډ د سرچینو څخه تیریږي ، کوبرنیټس به د دې سرچینو خلاصولو لپاره ټول پوډونه وتړي.
له همدې امله، دا مهمه ده چې ستاسو غوښتنلیک د وروستي کارونکي او لږترلږه د بیا رغونې وخت سره د لږترلږه اغیزې سره پای ته ورسیږي. دا پدې مانا ده چې د بندولو دمخه، دا باید ټول هغه معلومات خوندي کړي چې خوندي کولو ته اړتیا لري، د شبکې ټولې اړیکې وتړي، پاتې کار بشپړ کړي، او نور عاجل کارونه اداره کړي.
په عمل کې، دا پدې مانا ده چې ستاسو غوښتنلیک باید د SIGTERM پیغام اداره کولو توان ولري، د پروسې پای ته رسیدو سیګنال چې په یونیکس عملیاتي سیسټمونو کې د وژنې کارونې لپاره ډیفالټ سیګنال دی. د دې پیغام په ترلاسه کولو سره، غوښتنلیک باید بند شي.
یوځل چې کبرنیټس پریکړه وکړي چې پوډ پای ته ورسوي ، یو شمیر پیښې رامینځته کیږي. راځئ چې هر هغه ګام ته وګورو چې کوبرنیټس د کانټینر یا پوډ بندولو پرمهال اخلي.
راځئ چې ووایو چې موږ غواړو د پوډونو څخه یو ختم کړو. په دې وخت کې، دا به د نوي ټرافیک ترلاسه کول ودروي - په پوډ کې روان کانټینرونه به اغیزمن نشي، مګر ټول نوي ټرافیک به بند شي.
راځئ چې د PreStop هک وګورو، کوم چې یو ځانګړی کمانډ یا HTTP غوښتنه ده چې په پوډ کې کانټینرونو ته لیږل کیږي. که ستاسو غوښتنلیک د SIGTERM ترلاسه کولو پر مهال په سمه توګه بند نه شي، تاسو کولی شئ د سمې بندولو لپاره پری سټاپ وکاروئ.
ډیری برنامه به په ښه توګه وځي کله چې دوی د SIGTERM سیګنل ترلاسه کوي ، مګر که تاسو د دریمې ډلې کوډ یا کوم سیسټم کاروئ چې تاسو په بشپړ ډول کنټرول نلرئ ، د پری سټاپ هک د غوښتنلیک بدلولو پرته د زړه راښکونکي بندیدو مجبورولو عالي لاره ده.
د دې هک اجرا کولو وروسته، Kubernetes به په پوډ کې کانټینرونو ته د SIGTERM سیګنال واستوي، دوی ته خبر ورکوي چې دوی به ډیر ژر منحل شي. د دې سیګنال په ترلاسه کولو سره، ستاسو کوډ به د بندولو پروسې ته لاړ شي. پدې پروسه کې ممکن د اوږدې مودې اړیکې بندول لکه د ډیټابیس اتصال یا ویب ساکټ جریان ، د اوسني حالت خوندي کول او داسې نور شامل وي.
حتی که تاسو د پری سټاپ هک کاروئ، نو دا خورا مهم دي چې وګورئ چې ستاسو غوښتنلیک په حقیقت کې څه پیښیږي کله چې تاسو ورته د SIGTERM سیګنال لیږئ، او دا څنګه چلند کوي، نو د پوډ بندیدو له امله د سیسټم په عملیاتو کې پیښې یا بدلونونه نه راځي. تاسو ته یو حیرانتیا.
په دې وخت کې، Kubernetes به د یو ټاکلي وخت لپاره انتظار وکړي، چې د terminationGracePeriodSecond په نوم یادیږي، یا د SIGTERM سیګنال ترلاسه کولو څخه مخکې، په زړه پورې توګه د بندولو موده.
په ډیفالټ دا موده 30 ثانیې ده. دا مهمه ده چې په یاد ولرئ چې دا د PreStop هک او SIGTERM سیګنال سره موازي پرمخ ځي. Kubernetes به د پری سټاپ هک او SIGTERM پای ته رسیدو ته انتظار ونه کړي — که ستاسو غوښتنلیک د TerminationGracePeriod پای ته رسیدو دمخه وځي، Kubernetes به سمدلاسه بل ګام ته لاړ شي. له همدې امله ، وګورئ چې په ثانیو کې د دې دورې ارزښت د پوډ په سمه توګه د بندولو لپاره اړین وخت څخه کم نه دی ، او که دا له 30s څخه ډیر وي ، په YAML کې مطلوب ارزښت ته موده زیاته کړئ. په ورکړل شوي مثال کې، دا 60s دی.
او په نهایت کې ، وروستی ګام دا دی که چیرې کانټینرونه لاهم د ګیرس پیریډ پای ته رسیدو وروسته روان وي ، نو دوی به د SIGKILL سیګنال واستوي او په زوره به حذف شي. په دې وخت کې، Kubernetes به نور ټول پوډ توکي پاک کړي.
Kubernetes د ډیری دلایلو لپاره پوډونه لغوه کوي، نو ډاډ ترلاسه کړئ چې ستاسو غوښتنلیک په هر حالت کې په ښه توګه پای ته رسیږي ترڅو یو باثباته خدمت یقیني کړي.
ځینې اعلانونه 🙂
له موږ سره د پاتې کیدو لپاره مننه. ایا تاسو زموږ مقالې خوښوي؟ غواړئ نور په زړه پورې مینځپانګه وګورئ؟ د امر په ورکولو یا ملګرو ته وړاندیز کولو سره زموږ ملاتړ وکړئ ،
ډیل R730xd په امستردام کې د Equinix Tier IV ډیټا مرکز کې 2 ځله ارزانه؟ یوازې دلته
سرچینه: www.habr.com