SadalÄ«tÄs sistÄmas var bÅ«t grÅ«ti pÄrvaldÄ«t, jo tajÄs ir daudz kustÄ«gu, mainÄ«gu elementu, kuriem visiem ir jÄdarbojas pareizi, lai sistÄma darbotos. Ja kÄds no elementiem neizdodas, sistÄmai tas ir jÄatklÄj, jÄapiet un jÄnovÄrÅ”, un tas viss jÄdara automÄtiski. Å ajÄ Kubernetes paraugprakses sÄrijÄ mÄs uzzinÄsim, kÄ iestatÄ«t gatavÄ«bas un dzÄ«vÄ«guma testus, lai pÄrbaudÄ«tu Kubernetes klastera darbÄ«bu.
VeselÄ«bas pÄrbaude ir vienkÄrÅ”s veids, kÄ paziÅot sistÄmai, vai jÅ«su lietojumprogrammas gadÄ«jums darbojas vai ne. Ja jÅ«su lietojumprogrammas gadÄ«jums nedarbojas, citiem pakalpojumiem nevajadzÄtu tai piekļūt vai nosÅ«tÄ«t tai pieprasÄ«jumus. TÄ vietÄ pieprasÄ«jums ir jÄnosÅ«ta uz citu lietojumprogrammas gadÄ«jumu, kas jau darbojas vai tiks palaists vÄlÄk. TurklÄt sistÄmai ir jÄatjauno jÅ«su lietojumprogrammas zaudÄtÄ funkcionalitÄte.
PÄc noklusÄjuma Kubernetes sÄks sÅ«tÄ«t datplÅ«smu uz aplikumu, kad darbosies visi podiÅos esoÅ”ie konteineri, un atsÄknÄs konteinerus, kad tie avarÄ. Å Ä« noklusÄjuma sistÄmas darbÄ«ba var bÅ«t pietiekami laba, taÄu jÅ«s varat uzlabot produkta izvietoÅ”anas uzticamÄ«bu, izmantojot pielÄgotas saprÄta pÄrbaudes.
Par laimi, Kubernetes padara to diezgan viegli izdarÄmu, tÄpÄc nav attaisnojuma Å”o pÄrbaužu ignorÄÅ”anai. Kubernetes nodroÅ”ina divu veidu veselÄ«bas pÄrbaudes, un ir svarÄ«gi saprast atŔķirÄ«bas, kÄ katra tiek izmantota.
GatavÄ«bas pÄrbaude ir paredzÄta, lai paziÅotu Kubernetes, ka jÅ«su lietojumprogramma ir gatava apstrÄdÄt trafiku. Pirms ļaut pakalpojumam nosÅ«tÄ«t trafiku uz podziÅu, Kubernetes ir jÄpÄrbauda, āāvai gatavÄ«bas pÄrbaude ir veiksmÄ«ga. Ja gatavÄ«bas pÄrbaude neizdodas, Kubernetes pÄrtrauks datplÅ«smas sÅ«tÄ«Å”anu uz podziÅu, lÄ«dz pÄrbaude bÅ«s izturÄta.
Liveness tests norÄda Kubernetes, vai jÅ«su pieteikums ir dzÄ«vs vai miris. PirmajÄ gadÄ«jumÄ Kubernetes to atstÄs mierÄ, otrajÄ izdzÄsÄ«s miruÅ”o podiÅu un aizstÄs to ar jaunu.
IedomÄsimies scenÄriju, kurÄ lietojumprogrammas iesildÄ«Å”ana un palaiÅ”ana aizÅem 1 minÅ«ti. JÅ«su pakalpojums nesÄks darboties, kamÄr lietojumprogramma nebÅ«s pilnÄ«bÄ ielÄdÄta un darbosies, lai gan darbplÅ«sma jau ir sÄkusies. ProblÄmas radÄ«sies arÄ« tad, ja vÄlaties paplaÅ”inÄt Å”o izvietoÅ”anu lÄ«dz vairÄkÄm kopijÄm, jo āāŔīm kopijÄm nevajadzÄtu saÅemt trafiku, kamÄr tÄs nav pilnÄ«bÄ gatavas. TomÄr pÄc noklusÄjuma Kubernetes sÄks sÅ«tÄ«t trafiku, tiklÄ«dz sÄksies procesi konteinerÄ.
Izmantojot gatavÄ«bas testu, Kubernetes gaidÄ«s, lÄ«dz lietojumprogramma darbojas pilnÄ«bÄ, pirms ļaus pakalpojumam nosÅ«tÄ«t trafiku uz jauno kopiju.
IedomÄsimies citu scenÄriju, kurÄ lietojumprogramma uzkaras uz ilgu laiku, pÄrtraucot apkalpoÅ”anas pieprasÄ«jumus. Procesam turpinoties, Kubernetes pÄc noklusÄjuma pieÅems, ka viss ir kÄrtÄ«bÄ, un turpinÄs sÅ«tÄ«t pieprasÄ«jumus uz nestrÄdÄjoÅ”u pod. Bet, izmantojot Liveness, Kubernetes noteiks, ka lietojumprogramma vairs neapkalpo pieprasÄ«jumus, un pÄc noklusÄjuma restartÄs miruÅ”o podziÅu.
ApskatÄ«sim, kÄ tiek pÄrbaudÄ«ta gatavÄ«ba un dzÄ«votspÄja. Ir trÄ«s testÄÅ”anas metodes - HTTP, Command un TCP. Lai pÄrbaudÄ«tu, varat izmantot jebkuru no tiem. VisizplatÄ«tÄkais veids, kÄ pÄrbaudÄ«t lietotÄju, ir HTTP zonde.
Pat ja jÅ«su lietojumprogramma nav HTTP serveris, jÅ«s joprojÄm varat izveidot vieglu HTTP serveri savÄ lietojumprogrammÄ, lai mijiedarbotos ar Liveness testu. PÄc tam Kubernetes sÄks pingot podam, un, ja HTTP atbilde ir 200 vai 300 ms diapazonÄ, tas norÄda, ka pods ir veselÄ«gs. PretÄjÄ gadÄ«jumÄ modulis tiks atzÄ«mÄts kÄ "neveselÄ«gs".
Komandu testiem Kubernetes palaiž komandu jÅ«su konteinerÄ. Ja komanda atgriežas ar nulles izejas kodu, konteiners tiks atzÄ«mÄts kÄ vesels, pretÄjÄ gadÄ«jumÄ, saÅemot izejas statusa numuru no 1 lÄ«dz 255, konteiners tiks atzÄ«mÄts kÄ āslimsā. Å Ä« testÄÅ”anas metode ir noderÄ«ga, ja nevarat vai nevÄlaties palaist HTTP serveri, bet varat palaist komandu, kas pÄrbaudÄ«s jÅ«su lietojumprogrammas stÄvokli.
GalÄ«gais verifikÄcijas mehÄnisms ir TCP tests. Kubernetes mÄÄ£inÄs izveidot TCP savienojumu norÄdÄ«tajÄ portÄ. Ja to var izdarÄ«t, konteiners tiek uzskatÄ«ts par veselÄ«gu, ja nÄ, tas tiek uzskatÄ«ts par dzÄ«votspÄjÄ«gu. Å Ä« metode var bÅ«t noderÄ«ga, ja izmantojat scenÄriju, kurÄ testÄÅ”ana ar HTTP pieprasÄ«jumu vai komandas izpildi nedarbojas ļoti labi. PiemÄram, galvenie pakalpojumi verifikÄcijai, izmantojot TCP, bÅ«tu gRPC vai FTP.
Testus var konfigurÄt vairÄkos veidos ar dažÄdiem parametriem. Varat norÄdÄ«t, cik bieži tie ir jÄizpilda, kÄds ir veiksmes un neveiksmes slieksnis un cik ilgi jÄgaida atbildes. PapildinformÄciju skatiet gatavÄ«bas un dzÄ«vÄ«guma testu dokumentÄcijÄ. TomÄr Liveness testa iestatÄ«Å”anÄ ir viens ļoti svarÄ«gs punkts - sÄkotnÄjÄs pÄrbaudes aizkaves inicialDelaySeconds iestatÄ«jums. KÄ jau minÄju, Ŕī testa neveiksmes rezultÄtÄ modulis tiks restartÄts. TÄpÄc jums ir jÄpÄrliecinÄs, ka testÄÅ”ana nesÄkas, kamÄr lietojumprogramma nav gatava darbam, pretÄjÄ gadÄ«jumÄ tÄ sÄks pÄrstartÄt. Es iesaku izmantot P99 startÄÅ”anas laiku vai vidÄjo lietojumprogrammas palaiÅ”anas laiku no bufera. Atcerieties pielÄgot Å”o vÄrtÄ«bu, jo jÅ«su lietojumprogrammas startÄÅ”anas laiks kļūst ÄtrÄks vai lÄnÄks.
LielÄkÄ daļa ekspertu apstiprinÄs, ka veselÄ«bas pÄrbaudes ir obligÄta pÄrbaude jebkurai izplatÄ«tajai sistÄmai, un Kubernetes nav izÅÄmums. Pakalpojuma veselÄ«bas pÄrbaužu izmantoÅ”ana nodroÅ”ina uzticamu, bezproblÄmu Kubernetes darbÄ«bu un lietotÄjiem ir bez piepÅ«les.
TurpinÄjums jau pavisam drÄ«z...
Dažas reklÄmas š
Paldies, ka palikÄt kopÄ ar mums. Vai jums patÄ«k mÅ«su raksti? Vai vÄlaties redzÄt interesantÄku saturu? Atbalsti mÅ«s, pasÅ«tot vai iesakot draugiem,
Dell R730xd 2x lÄtÄk Equinix Tier IV datu centrÄ AmsterdamÄ? Tikai Å”eit
Avots: www.habr.com