Kubernetes

Valstybinės ir be pilietybės programos „Kubernetes“

Valstybinės ir be pilietybės programos „Kubernetes“
Svarbūs kriterijai, į kuriuos reikia atsižvelgti prieš paleidžiant naują programą gamyboje, yra pagrindinė programos architektūra. Šiame kontekste dažnai naudojamas terminas yra tas, kad programa yra „be pilietybės“ arba kad programa yra „būsenos“. Abu tipai turi savų pliusų ir minusų. Kai kalbėsime apie gamyboje veikiančią programą ar paslaugą, galvoje turėsime „Kubernetes“ grupę. Galite įdiegti savo „Kubernetes“ grupę debesyje arba leisti, kad ji veiktų kaip vienas mazgas jūsų kompiuteryje, kad galėtumėte šiek tiek praktikuoti.

Pradėkime nuo naivaus „pilietybės neturėjimo“ apibrėžimo ir tada lėtai pereikime prie griežtesnio ir realesnio požiūrio.

Programa be pilietybės yra ta, kuri nepriklauso nuo nuolatinio saugojimo. Vienintelis dalykas, už kurį yra atsakinga jūsų grupė, yra jame priglobtas kodas ir kitas statinis turinys. Štai ir viskas, nereikia keisti duomenų bazių, rašyti ir nelikti failų, kai ištrinama pod.

Kita vertus, būsenos programa turi keletą kitų parametrų, kuriuos ji turėtų prižiūrėti klasteryje. Yra dinaminių duomenų bazių, kurios, net kai programa neprijungta arba ištrinta, išlieka diske. Išplatintoje sistemoje, tokioje kaip „Kubernetes“, kyla keli klausimai. Mes pažvelgsime į juos išsamiai, bet pirmiausia patikslinkime keletą klaidingų nuomonių.

Be pilietybės paslaugos iš tikrųjų nėra „be pilietybės“

Ką tai reiškia, kai sakome sistemos būseną? Na, apsvarstykime šį paprastą automatinių durų pavyzdį.

Durys atsidaro, kai jutiklis aptinka artėjantį asmenį, ir užsidaro, kai jutiklis negauna atitinkamo įėjimo.

Praktiškai jūsų programa be pilietybės yra panaši į šį mechanizmą aukščiau. Jis gali turėti daug daugiau būsenų nei tik uždaras ar atviras, ir daug įvairių įvesties tipų, todėl jis tampa sudėtingesnis, bet iš esmės tas pats.

Tai gali išspręsti sudėtingas problemas tiesiog gaudamas įvestį ir atlikdamas veiksmus, kurie priklauso ir nuo įvesties, ir nuo „būsenos“, kurioje jis yra. Iš anksto nustatytas galimų būsenų skaičius.

Taigi pilietybė yra klaidingas pavadinimas.

Programos be pilietybės taip pat gali šiek tiek apgauti, išsaugodamos išsamią informaciją apie, tarkime, kliento sesijas, esančias pačiame kliente (puikus pavyzdys yra HTTP slapukai), ir vis tiek yra be pilietybės, dėl kurios jie galėtų nepriekaištingai veikti klasteryje.

Pvz., Išsami kliento sesijos informacija, pvz., Kokie produktai buvo išsaugoti krepšelyje ir nebuvo patikrinti, gali būti išsaugota kliente, o kitą kartą, kai prasidės sesija, taip pat bus prisiminta.

„Kubernetes“ sankaupoje programoje be pilietybės nėra nuolatinės saugyklos ar apimties, susijusios su ja. Žvelgiant iš operacijų perspektyvos, tai yra puiki žinia. Skirtingos grupės visoje grupėje gali veikti savarankiškai, tuo pačiu metu joms gaunant kelias užklausas. Jei kažkas negerai, galite tiesiog paleisti programą iš naujo ir ji grįš į pradinę būseną, turėdama mažai prastovų.

Valstybinės paslaugos ir BŽŪP teorema

Kita vertus, valstybinėms tarnyboms teks nerimauti dėl daugybės ypatingų atvejų ir keistų problemų. Ankštyje yra bent vienas tūris ir jei to tomo duomenys yra sugadinti, tai išlieka, net jei visas klasteris bus perkrautas.

Pvz., Jei vykdote duomenų bazę „Kubernetes“ sankaupoje, visose ankštyse turi būti vietinis tūris, skirtas duomenų bazei laikyti. Visi duomenys turi būti visiškai sinchronizuoti.

Taigi, jei kas nors modifikuoja įrašą į duomenų bazę, ir tai buvo padaryta A pakete, o B skyriuje pateikiama skaitymo užklausa, kad pamatytų tuos modifikuotus duomenis, tada B pod turi parodyti tuos naujausius duomenis arba pateikti klaidos pranešimą. Tai vadinama nuoseklumu.

Nuoseklumas, Kubernetes klasterio kontekste reiškia kiekvienas skaitymas gauna naujausią rašymą arba klaidos pranešimą.

Bet tai prieštarauja prieinamumas, viena iš svarbiausių priežasčių, kodėl turi paskirstytą sistemą. Prieinamumas reiškia, kad jūsų programa visą parą veikia kuo puikiausiai, kaip ir turima, su kuo mažiau klaidų.

Galima teigti, kad viso to galite išvengti, jei turite tik vieną centralizuotą duomenų bazę, kuri yra atsakinga už visus nuolatinius saugojimo poreikius. Dabar mes turime vieną nesėkmės tašką, o tai yra dar viena problema, kurią pirmiausia turėtų išspręsti „Kubernetes“ grupės.

Turite turėti decentralizuotą nuolatinių duomenų kaupimo grupėje būdą. Paprastai vadinamas tinklo skaidymu. Be to, jūsų klasteris turi sugebėti išgyventi sugedus mazgams, vykdantiems būsenos programą. Tai žinoma kaip pertvarų tolerancija.

Bet kuriai valstybinei tarnybai (ar programai), vykdomai „Kubernetes“ klasteryje, turi būti šių trijų parametrų pusiausvyra. Pramonėje ji yra žinoma kaip BŽŪP teorema, kai kompromisai tarp nuoseklumo ir prieinamumo yra svarstomi esant tinklo skaidymui.

Kitos nuorodos

Norėdami sužinoti daugiau apie BŽŪP teoremą, galbūt norėsite pamatyti šią puikią kalbą, pasakytą Bryano Cantrillo, kuris daug atidžiau nagrinėja paskirstytų sistemų veikimą gamyboje.

Žymeklis peršoka arba juda atsitiktinai, kai rašote „Windows 10“
Jei pastebite, kad pelės žymeklis peršoka arba juda pats, automatiškai, atsitiktinai, kai vedate „Windows“ nešiojamąjį kompiuterį ar kompiuterį, kai k...
Kaip pakeisti pelės ir jutiklinių plokščių slinkimo kryptį sistemoje „Windows 10“
Pelė ir Jutiklinė dalisTai ne tik palengvina skaičiavimus, bet ir efektyvesnį bei mažiau laiko reikalaujantį. Mes neįsivaizduojame gyvenimo be šių pri...
Kaip pakeisti pelės žymeklio ir žymeklio dydį, spalvą ir schemą sistemoje „Windows 10“
„Windows 10“ pelės žymeklis ir žymeklis yra labai svarbūs operacinės sistemos aspektai. Tai galima pasakyti ir apie kitas operacines sistemas, taigi, ...