Kubernetes parimad praktikad. Õige katkestamine Terminate

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
Parimad praktikad Kuberneteses. Ressursside pÀringute ja piirangute seadistamine

Kubernetes parimad praktikad. Õige katkestamine Terminate

Oluline aspekt jaotatud sĂŒsteemide töös on tĂ”rgete kĂ€sitlemine. Kubernetes aitab selle kaudu, kasutades kontrollereid, mis jĂ€lgivad teie sĂŒsteemi olekut ja taaskĂ€ivitavad mittefunksioneerivad teenused. Siiski vĂ”ib Kubernetes sundida teie rakenduste töö lĂ”petamist, et tagada kogu sĂŒsteemi elujĂ”ud. Selles seerias uurime, kuidas aidata Kubernetesel oma tööd tĂ”husamalt teha ja rakenduste seisakuaega vĂ€hendada.

Enne konteinerite kasutuselevĂ”ttu töötasid enamik rakendusi virtuaalsetel vĂ”i fĂŒĂŒsilistel masinatel. Kui rakendus andis tĂ”rke vĂ”i hangus, kulus palju aega jooksva ĂŒlesande peatamiseks ja programmi uuesti laadimiseks. Halvimal juhul pidi keegi selle probleemi kĂ€sitlema kĂ€sitsi öösel, kĂ”ige ebamugavamal ajal. Kui olulist ĂŒlesannet tĂ€itsid vaid 1-2 töömachiini, oli selline tĂ”rge tĂ€iesti vastuvĂ”etamatu.
SeetĂ”ttu hakati kĂ€sitsi taaskĂ€ivitamise asemel kasutama protsessitasandi jĂ€lgimist, et automaatselt taaskĂ€ivitada rakendust selle ebaĂ”nnestumise korral. Kui programm ebaĂ”nnestus, haarab jĂ€lgimisprotsess vĂ€ljumiskoodi ja taaskĂ€ivitab serveri. Selliste sĂŒsteemide, nagu Kubernetes, saabumisega integreeriti see tĂ”rke reageerimise viis lihtsalt infrastruktuuri.

Kubernetes kasutab sĂŒndmuste silmuste „jĂ€lgimine – erinevuste fikseerimine – tegevuse tegemine”, et veenduda, et ressursid sĂ€ilitavad töökorras oleku konteineritest sĂ”lmedeni.

Kubernetes parimad praktikad. Õige katkestamine Terminate

See tÀhendab, et te ei pea enam kÀsitsi protsesside jÀlgimist kÀivitama. Kui resurss ei lÀbinud tervisekontrolli Health Check, annab Kubernetes sellele lihtsalt automaatselt asenduse. Samuti teeb Kubernetes palju rohkem, kui lihtsalt jÀlgib teie rakenduste tÔrkeid. Ta vÔib luua rakenduse rohkem koopiaid, et need töötaksid erinevates masinates, uuendada rakendust vÔi samaaegselt kÀivitada mitu versiooni teie rakendusest.
SeetĂ”ttu on palju pĂ”hjuseid, miks Kubernetes vĂ”ib katkestada tĂ€iesti terve konteineri töö. NĂ€iteks kui uuendate oma juurutust, peatab Kubernetes aeglaselt vanad podid, samal ajal kui uued kĂ€ivituvad. Kui lĂŒlitate vĂ€lja sĂ”lm, lĂ”petab Kubernetes selle sĂ”lme kĂ”ikide podide töö. LĂ”puks, kui sĂ”lmel saavad ressursid otsa, peatab Kubernetes kĂ”ik podid, et neid ressursse vabastada.

SeetĂ”ttu on vĂ€ga oluline, et teie rakendus lĂ”petaks töö minimaalsete mĂ”jude ja minimaalse taastumisaega lĂ”ppkasutajale. See tĂ€hendab, et enne vĂ€ljalĂŒlitamist peab see salvestama kĂ”ik vajalikud andmed, sulgema kĂ”ik vĂ”rguĂŒhendused, lĂ”petama ĂŒlejÀÀnud tööd ja jĂ”udma teha muid hĂ€davajalikke ĂŒlesandeid.

Praktikas tĂ€hendab see, et teie rakendus peab suutma töödelda SIGTERM sĂ”numit – protsesside lĂ”petamise signaali, mis on vaikimisi signaal Unix-pĂ”histes operatsioonisĂŒsteemides kill utiliidile. Saades seda sĂ”numit, peab rakendus enda töö lĂ”petama.

PĂ€rast seda, kui Kubernetes otsustab podi lĂ”petada, toimub mitmeid sĂŒndmusi. Vaatame ĂŒle iga sammu, mida Kubernetes teeb konteineri vĂ”i podi sulgemisel.

Oletame, et soovime lĂ”petada ĂŒhe podi. Sel hetkel lĂ”petab ta uue liikluse vastuvĂ”tmise – podis töötavad konteinerid ei ole mĂ”jutatud, kuid kogu uus liiklus blokeeritakse.

Kubernetes parimad praktikad. Õige katkestamine Terminate

Vaatame preStop konksu – see on spetsiaalne kĂ€sk vĂ”i HTTP-pĂ€ring, mis saadetakse podi konteineritele. Kui teie rakendus ei sulgu Ă”igesti SIGTERM saamisel, saate kasutada preStop konksu, et lĂ”petada töö Ă”igesti.

Kubernetes parimad praktikad. Õige katkestamine Terminate

Enamik programme lĂ”petab oma töö Ă”igesti SIGTERM signaali saamisel, kuid kui kasutate kolmanda osapoole koodi vĂ”i mingit sĂŒsteemi, mida ei saa tĂ€ielikult kontrollida, on preStop konks suurepĂ€rane viis elegantse sulgemise kutsumiseks ilma rakendust muutmata.

PĂ€rast selle hooki tĂ€itmist saadab Kubernetes konteineritele podi sees SIGTERM signaali, mis annab neile teada, et nad peavad varsti sulgema. Kui nad selle signaali saavad, lĂ€heb teie kood sulgemisprotsessi. See protsess vĂ”ib hĂ”lmata pikaajaliste ĂŒhenduste, nĂ€iteks andmebaasiĂŒhenduste vĂ”i WebSocketi voogude sulgemist, praeguse oleku salvestamist jne.

Isegi kui kasutate preStop hooki, on ÀÀrmiselt oluline kontrollida, mis tĂ€pselt teie rakendusega juhtub, kui saadate sellele SIGTERM signaali, kuidas see kĂ€itub, et sĂŒndmused vĂ”i muud sĂŒsteemi töö muutused, mis on pĂ”hjustatud podi sulgemisest, teid ĂŒllatuseks ei tooks.

Sel hetkel, enne edasiste meetmete vÔtmist, ootab Kubernetes kindlaksmÀÀratud aja, mida nimetatakse terminationGracePeriodSeconds, vÔi aeg, mis on ette nÀhtud korrektseks sulgemiseks pÀrast SIGTERM signaali saamist.

Kubernetes parimad praktikad. Õige katkestamine Terminate

Vaikimisi on see periood 30 sekundit. On oluline mĂ€rkida, et see kestab samal ajal koos preStop hooki ja SIGTERM signaaliga. Kubernetes ei oota, kuni preStop hook ja SIGTERM on lĂ”petatud — kui teie rakendus lĂ”petab töö enne terminationGracePeriodi lĂ”ppu, lĂ€heb Kubernetes kohe jĂ€rgmise sammu juurde. Seega veenduge, et selle perioodi vÀÀrtus sekundites poleks vĂ€iksem kui aeg, mis on vajalik podi korrektseks sulgemiseks, ja kui see ĂŒletab 30s, suurendage perioodi vajalikule vÀÀrtusele YAML-is. Antud nĂ€ites on see 60s.

Ja lĂ”puks, viimane samm — kui konteinerid jĂ€tkavad töö tegemist pĂ€rast terminationGracePeriodi lĂ”ppu, saadavad nad SIGKILL signaali ja eemaldatakse sundkorras. Sel hetkel puhastab Kubernetes ka kĂ”ik muud podi objektid.

Kubernetes parimad praktikad. Õige katkestamine Terminate

Kubernetes lÔpetab podide töö mitmel pÔhjusel, seetÔttu veenduge, et teie rakendus suletakse igal juhul Ôigesti, et tagada teenuse stabiilne toimimine.

Parimad Kubernetes`e praktikad. VĂ€liste teenuste kaardistamine

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