Kubernetes'i parimad praktikad. Kubernetes'i elujÔu kontrollimine Readiness ja Liveness testide abil

Parimad Kubernetes'i praktikad. VĂ€ikeste konteinerite loomine
Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Kubernetes'i parimad praktikad. Kubernetes'i elujÔu kontrollimine Readiness ja Liveness testide abil

Jagatud sĂŒsteemide haldamine vĂ”ib olla keeruline, kuna neis on palju liikuvaid muutujaid, mis kĂ”ik peavad korralikult töötama, et tagada sĂŒsteemi funktsionaalsus. Kui ĂŒkskĂ”ik milline elemendist ebaĂ”nnestub, peab sĂŒsteem selle avastama, ĂŒletama ja parandama, ning seda peavad olema automaatsed toimingud. KĂ€esolevas 'Kubernetes'i parimad praktikad' seerias uurime, kuidas seadistada Readiness ja Liveness teste Kubernetes'i kasti elujĂ”u kontrollimiseks.

Tervisekontroll (Health Check) on lihtne viis vĂ”imaldada sĂŒsteemile teada, kas teie rakenduse eksemplar töötab vĂ”i mitte. Kui teie rakenduse eksemplar ei tööta, ei tohiks teised teenused selle poole pöörduda ega sellele pĂ€ringut saata. Selle asemel peaks pĂ€ring minema teise rakenduse eksemplarile, mis juba töötab vĂ”i kĂ€ivitatakse hiljem. Lisaks peab sĂŒsteem teie rakendusele tagastama kadumise tĂ”ttu töövĂ”ime.

Vaikimisi alustab Kubernetes liikluse suunamist pod'i, kui kÔik konteinerid pod'ides on kÀivitatud, ja taaskÀivitab konteinerid, kui need kokku kukuvad. Alguses vÔib selline vaikimisi kÀitumine olla piisav, kuid vÔite oma toote juurutamise usaldusvÀÀrsust suurendada, kasutades kohandatud töövÔime kontrollimisi.

Kubernetes'i parimad praktikad. Kubernetes'i elujÔu kontrollimine Readiness ja Liveness testide abil

Õnneks vĂ”imaldab Kubernetes seda ĂŒsna lihtsalt teha, seega ei ole selliste kontrollide ignoreerimiseks mingit vabandust. Kubernetes pakub kahte tĂŒĂŒpi tervisekontrolle, kusjuures on oluline mĂ”ista igaĂŒhe rakenduse erinevusi.

Valmidustest (Readiness Test) kasutatakse Kubernetes'ile teatamiseks, et teie rakendus on valmis liiklust teenindama. Enne kui teenus saadab liiklust pod'i, peab Kubernetes veenduma, et valmiduse kontrollimine on edukas. Kui valmidustest ebaÔnnestub, lÔpetab Kubernetes liikluse suunamise pod'i, kuni test on edukalt lÀbitud.

ElujÔutest (Liveness Test) teatab Kubernetes'ile, kas teie rakendus on elus vÔi surnud. Esimesel juhul jÀtab Kubernetes selle rahule, teisel juhul eemaldab see surnud pod'i ning asendab selle uuega.

Kujutame ette stsenaariumi, kus teie rakenduse soojendamiseks ja kÀivitamiseks kulub 1 minut. Teie teenus ei hakka tööle, kuni rakendus ei ole tÀielikult laaditud ja kÀivitatud, kuigi tööprotsess on juba alanud. Lisaks tekivad teil probleemid, kui soovite suurendada selle juurutamise kopeerimist, kuna need kopeerimised ei tohiks liiklust saada, kuni nad pole tÀielikult valmis. Kuid vaikimisi alustab Kubernetes liikluse suunamist kohe pÀrast konteineris protsesside algust.

KÀideldavuse testi Readiness kasutamisel ootab Kubernetes, kuni rakendus on tÀielikult kÀivitatud, ja alles seejÀrel lubab teenusel suunata liiklust uuele koopia.

Kubernetes'i parimad praktikad. Kubernetes'i elujÔu kontrollimine Readiness ja Liveness testide abil

Kujutame ette teist stsenaariumi, kus rakendus hangub pikaks ajaks, lÔpetades pÀringute töötlemise. Kuna protsess jÀtkab töötamist, peab Kubernetes vaikimisi olema kÔik korras ja jÀtkab pÀringute suunamist mitte töötavale pod'ile. Kuid kasutades Liveness'i, avastab Kubernetes, et rakendus ei töötle enam pÀringuid, ja alustab vaikimisi mitte töötava pod'i taaskÀivitamist.

Kubernetes'i parimad praktikad. Kubernetes'i elujÔu kontrollimine Readiness ja Liveness testide abil

Vaatame, kuidas testitakse valmisolekut ja elujÔulisust. On kolm testimise meetodit - HTTP, Command ja TCP. Kontrollimiseks vÔite kasutada mÔnd neist. KÔige levinum meetod kasutajatestiks on HTTP probe.

Isegi kui teie rakendus ei ole HTTP-server, saate siiski luua rakenduse sees kergkaalu HTTP-serveri, et suhelda Liveness testiga. PÀrast seda hakkab Kubernetes pod'i pingerÔngastama ning kui HTTP vastus jÀÀb vahemikku 200 vÔi 300 ms, tÀhendab see, et pod on 'terve'. Muul juhul mÀrgitakse moodul 'haigeks'.

Kubernetes'i parimad praktikad. Kubernetes'i elujÔu kontrollimine Readiness ja Liveness testide abil

KĂŒsimus Command'i testides kĂ€ivitab Kubernetes kĂ€su teie konteineris. Kui kĂ€sk naaseb nulliga exit code'iga, mĂ€rgitakse konteiner tervena, vastasel juhul, kui saab exit status'i, mis on vahemikus 1 kuni 255, mĂ€rgitakse konteiner 'haigeks'. See testimismeetod on kasulik, kui te ei saa vĂ”i ei soovi kĂ€ivitada HTTP-serverit, aga teil on vĂ”imalik kĂ€ivitada kĂ€sk, mis kontrollib teie rakenduse ' tervislikkust.

Kubernetes'i parimad praktikad. Kubernetes'i elujÔu kontrollimine Readiness ja Liveness testide abil

Viimane kontrollimehhanism on TCP-test. Kubernetes pĂŒĂŒab luua TCP-ĂŒhendust mÀÀratud pordil. Kui see Ă”nnestub, loetakse konteiner terveks, kui ei – siis mitteelujĂ”uliseks. See meetod vĂ”ib osutuda kasulikuks, kui kasutate stsenaariumi, kus testimine HTTP-pĂ€ringute vĂ”i kĂ€su tĂ€itmisega pole vĂ€ga efektiivne. NĂ€iteks on peamisteks teenusteks TCP-testimiseks gRPC vĂ”i FTP.

Kubernetes'i parimad praktikad. Kubernetes'i elujÔu kontrollimine Readiness ja Liveness testide abil

Testid saab seadistada mitmel erineval viisil, koos erinevate parameetritega. Saate mÀÀrata, kui tihti neid tuleks kĂ€ivitada, millised on eduka ja ebaĂ”nnestumise piirvÀÀrtused ning kui kaua oodata vastuseid. Üksikasjalikku teavet leiate Readiness ja Liveness testide dokumentatsioonist. Siiski on ĂŒks vĂ€ga oluline aspekt Liveness testi seadistamisel – esialgse viivituse vÀÀrtus initialDelaySeconds. Kuidas ma mainisin, ebaĂ”nnestumine selle testi puhul toob kaasa mooduli taaskĂ€ivitamise. SeetĂ”ttu peate veenduma, et testimine ei alga enne, kui rakendus on töötamiseks valmis, vastasel juhul hakkab see pidevalt taaskĂ€ivituma. Soovitan kasutada rakenduse kĂ€ivitamise P99 vĂ”i keskmist kĂ€ivitamise aega puhvri pĂ”hjal. Ärge unustage seda vÀÀrtust kohandada, kui teie rakenduse kĂ€ivitamise aeg muutub kiiremaks vĂ”i aeglasemaks.

Enamik spetsialiste kinnitab, et Health Check on kohustuslik kontroll igas jaotatud sĂŒsteemis, ja Kubernetes ei ole erand. Teenuste 'tervishoiu' kontrollimine tagab Kubernetes'e usaldusvÀÀrse ja tĂ”rgeteta toimimise ning ei pĂ”hjusta kasutajatele mingeid raskusi.

JĂ€tkub peagi...

MĂ€ngi videot

Veidi reklaami 🙂

AitÀh, et olete meiega. Kas teile meeldivad meie artiklid? Kas soovite nÀha rohkem huvitavat sisu? Toetage meid, tellides teenuse vÔi soovitades meid tuttavatele. Pilve VPS arendajatele alates $4.99, ainulaadne entry-level serverite analoog, mille oleme teie jaoks vÀlja mÔelnud: Kogu tÔde VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps alates $19 vÔi kuidas jagada serverit Ôigesti? (saadaval RAID1 ja RAID10 variandid, kuni 24 tuuma ja kuni 40GB DDR4).

Dell R730xd on Equinixi Tier IV andmekeskuses Amsterdamis kaks korda odavam? Ainult meie juures 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB alates $199 Hollandis! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — alates $99! Lugege sellest Kuidas luua ettevĂ”tte tasemel infrastruktuuri, kasutades Dell R730xd E5-2650 v4 servereid, mille hind on 9000 eurot, taskukohase hinna eest?

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster