E wichtege Punkt an der Operatioun vun verdeelt Systemer ass Feeler Ëmgank. Kubernetes hëlleft mat dësem andeems Dir Controller benotzt déi d'Gesondheet vun Ärem System iwwerwaachen an d'Servicer nei starten déi opgehalen hunn ze schaffen. Wéi och ëmmer, Kubernetes kënnen Är Uwendungen zwéngend stoppen fir d'allgemeng Systemgesondheet ze garantéieren. An dëser Serie wäerte mir kucken wéi Dir Kubernetes hëllefe kënnt hir Aarbecht méi effizient ze maachen an d'Uwendungszäit ze reduzéieren.
Virun Container lafen déi meescht Uwendungen op virtuell oder kierperlech Maschinnen. Wann d'Applikatioun erofgefall ass oder gefruer ass, huet et eng laang Zäit gedauert fir d'Aufgab ze annuléieren an de Programm nei ze lueden. Am schlëmmste Fall huet een dee Problem nuets, an den onopportunsten Stonnen, manuell ze léisen. Wann nëmmen 1-2 schaffen Maschinnen eng wichteg Aufgab Leeschtunge, sou eng Stéierung war komplett inakzeptabel.
Dofir, amplaz vun manuellen Neistarten, hunn se ugefaang Prozess-Niveau Iwwerwaachung ze benotzen fir automatesch d'Applikatioun am Fall vun enger anormaler Kënnegung nei ze starten. Wann de Programm feelt, erfaasst den Iwwerwaachungsprozess den Ausgangscode an de Server nei starten. Mat dem Advent vu Systemer wéi Kubernetes gouf dës Zort Äntwert op Systemfehler einfach an d'Infrastruktur integréiert.
Kubernetes benotzt eng Observe-Differenz-Take-Action Event Loop fir sécherzestellen datt Ressourcen gesond bleiwen op hirem Wee vun de Container op d'Node selwer.
Dëst bedeit datt Dir net méi manuell Prozess Iwwerwaachung braucht. Wann eng Ressource de Gesondheetscheck feelt, gëtt Kubernetes se einfach automatesch mat engem Ersatz zur Verfügung gestallt. Wéi och ëmmer, Kubernetes mécht vill méi wéi just Är Uwendung fir Feeler ze iwwerwaachen. Et kann méi Exemplare vun der Applikatioun erstellen fir op verschidde Maschinnen ze lafen, d'Applikatioun ze aktualiséieren oder verschidde Versioune vun Ärer Applikatioun gläichzäiteg auszeféieren.
Dofir ginn et vill Grënn firwat Kubernetes e perfekt gesonde Container kann ofschléissen. Zum Beispill, wann Dir Är Détachement upgrade, stoppt Kubernetes lues a lues al Pods beim Start vun neier. Wann Dir en Node ausschalt, stoppt Kubernetes all Pods op deem Node ze lafen. Schlussendlech, wann e Node aus Ressourcen leeft, wäert Kubernetes all Pods zoumaachen fir dës Ressourcen ze befreien.
Dofir ass et kritesch datt Är Uwendung mat minimalem Impakt op den Endbenotzer a minimal Erhuelungszäit ofgeschloss ass. Dëst bedeit datt ier se ofgeschalt gëtt, muss et all Daten späicheren déi gespäichert musse ginn, all Netzwierkverbindungen zoumaachen, déi verbleiwen Aarbecht komplett maachen an aner dréngend Aufgaben verwalten.
An der Praxis heescht dat datt Är Applikatioun de SIGTERM Message muss handhaben, de Prozessterminatiounssignal dat de Standardsignal fir de Kill Utility op Unix Betribssystemer ass. Wann Dir dëse Message kritt, sollt d'Applikatioun ausschalten.
Wann de Kubernetes decidéiert e Pod ofzeschléissen, geschéien eng Rei vun Eventer. Loosst eis all Schrëtt kucken, deen de Kubernetes hëlt wann Dir e Container oder Pod ausschalt.
Loosst eis soen, mir wëllen ee vun de Pods ofschléissen. Zu dësem Zäitpunkt wäert et ophalen neie Verkéier ze kréien - Container, déi am Pod lafen, ginn net beaflosst, awer all neie Verkéier gëtt blockéiert.
Loosst eis de PreStop Hook kucken, wat e spezielle Kommando oder HTTP-Ufro ass, deen op Container an engem Pod geschéckt gëtt. Wann Är Applikatioun net richteg ausschalt wann Dir SIGTERM kritt, kënnt Dir PreStop benotze fir richteg auszeschalten.
Déi meescht Programmer ginn graziéis eraus wann se e SIGTERM Signal kréien, awer wann Dir Drëtt Partei Code benotzt oder e System deen Dir net voll kontrolléiert, ass de PreStop Hook e super Wee fir e graziéisen Ausschalten ze zwéngen ouni d'Applikatioun z'änneren.
Nodeems Dir dësen Hook ausgefouert huet, schéckt Kubernetes e SIGTERM Signal un d'Container am Pod, a léisst se wëssen datt se geschwënn ofgeschalt ginn. Wann Dir dëst Signal kritt, geet Äre Code an de Shutdown Prozess weider. Dëse Prozess kann d'Stopp vun all laangliewege Verbindunge wéi eng Datebankverbindung oder WebSocket Stream enthalen, den aktuellen Zoustand späicheren, an dergläiche.
Och wann Dir e PreStop Hook benotzt, ass et ganz wichteg ze kontrolléieren wat genau mat Ärer Applikatioun geschitt wann Dir et e SIGTERM Signal schéckt, a wéi et sech behält, sou datt Eventer oder Ännerungen an der Systemoperatioun verursaacht duerch e Pod Shutdown net kommen als eng Iwwerraschung fir Iech.
Zu dësem Zäitpunkt waart Kubernetes op eng spezifizéiert Zäit, genannt TerminationGracePeriodSecond, oder d'Period fir graziéis auszeschalten wann et e SIGTERM-Signal kritt, ier se weider Handlungen huelen.
Par défaut ass dës Period 30 Sekonnen. Et ass wichteg ze notéieren datt et parallel mam PreStop Haken an dem SIGTERM Signal leeft. Kubernetes wäert net waarden bis de PreStop Hook an de SIGTERM ophalen - wann Är Applikatioun erausgeet ier d'TerminationGracePeriod eriwwer ass, wäert Kubernetes direkt op de nächste Schrëtt weidergoen. Dofir, kontrolléiert datt de Wäert vun dëser Period a Sekonnen net manner ass wéi d'Zäit déi néideg ass fir de Pod korrekt auszeschalten, a wann et méi wéi 30s ass, erhéicht d'Period op de gewënschten Wäert am YAML. Am Beispill gëtt et 60er.
A schlussendlech ass de leschte Schrëtt wann d'Container nach laafen no der TerminationGracePeriod, se schécken e SIGKILL Signal a gi gezwongen geläscht. Zu dësem Zäitpunkt wäert Kubernetes och all aner Podobjekter botzen.
Kubernetes terminéiert Pods aus ville Grënn, also vergewëssert Iech datt Är Applikatioun op jiddwer Fall graziéis ofgeschloss gëtt fir e stabile Service ze garantéieren.
Puer Annoncen 🙂
Merci datt Dir bei eis bleift. Hutt Dir eis Artikelen gär? Wëllt Dir méi interessant Inhalt gesinn? Ënnerstëtzt eis andeems Dir eng Bestellung maacht oder Frënn empfeelt,
Dell R730xd 2 Mol méi bëlleg an Equinix Tier IV Daten Zentrum zu Amsterdam? Nëmmen hei
Source: will.com