Kubernetes

Kas yra Kubernetes?

Kas yra Kubernetes?

Kas yra Kubernetes? Kokia jo architektūra?

Konteineriuose nutrūko laidas tarp programinės įrangos kūrėjų ir gamybos aplinkos. Ne ta prasme, kad jums visai nereikia gamybos sistemos, tačiau nereikia jaudintis dėl gamybos aplinkos specifikos.

Dabar programos kartu su joms reikalingomis priklausomybėmis yra supakuotos į lengvą konteinerį, o ne VM. Tai yra puiku! Tačiau tai nesuteikia imuniteto nuo sistemos gedimų, tinklo gedimų ar disko gedimų. Pvz., Jei duomenų centras, kuriame veikia jūsų serveriai, yra prižiūrimas, jūsų programa bus atjungta.

Kubernetes susiduria su šiomis problemomis. Tam reikalinga talpyklų idėja ir išplėsta, kad ji veiktų keliuose skaičiavimo mazguose (tai gali būti debesyje priglobta virtuali mašina arba pliko metalo serveriai). Idėja yra turėti paskirstytą sistemą, skirtą konteinerių programoms paleisti.

Kodėl Kubernetes?

Kodėl pirmiausia turėtumėte turėti paskirstytą aplinką?

Dėl kelių priežasčių visų pirma yra didelis prieinamumas. Norite, kad jūsų elektroninės prekybos svetainė liktų internete visą parą, be to, prarasite verslą, tam naudokite „Kubernetes“. Antra yra mastelio galimybė, kur norite išplėsti „mastelį“. Čia išplėsti reikia pridėti daugiau skaičiavimo mazgų, kad jūsų auganti programa suteiktų daugiau vietos kojoms veikti.

Dizainas ir architektūra

Kaip ir bet kurioje paskirstytoje sistemoje, „Kubernetes“ sankaupoje yra pagrindinis mazgas ir tada daugybė darbuotojų mazgų, kuriuose jūsų programos iš tikrųjų veiktų. Šeimininkas yra atsakingas už užduočių planavimą, darbo krūvių valdymą ir saugų naujų mazgų pridėjimą į grupę.

Dabar, žinoma, pats pagrindinis mazgas gali sugesti ir paimti visą klasterį, todėl „Kubernetes“ iš tikrųjų leidžia turėti kelis pagrindinius mazgus dėl atleidimo.

Iš paukščio skrydžio matoma tipinė „Kubernetes“ dislokacija

Kubernetes meistras

„Kubernetes“ meistras yra tai, ką „DevOps“ komanda sąveikauja ir naudoja naujų mazgų diegimui, naujų programų diegimui, išteklių stebėjimui ir valdymui. Pagrindinė mazgo pagrindinė užduotis yra tvarkaraštį efektyvus darbo krūvis tarp visų darbuotojų mazgų, siekiant maksimaliai išnaudoti išteklius, pagerinti našumą ir vadovautis įvairiomis „DevOps“ komandos pasirinktomis jų darbo krūvio politikomis.

Kitas svarbus komponentas yra ir kt tai yra demonas, kuris seka darbuotojų mazgus ir saugo duomenų bazę, kurioje saugoma visa klasterio būsena. Tai yra pagrindinės vertės duomenų saugykla, kuri taip pat gali būti vykdoma paskirstytoje aplinkoje keliuose pagrindiniuose mazguose. Etcd turinys pateikia visus svarbius duomenis apie visą klasterį. Darbuotojo mazgas kartkartėmis žiūrėdavo į etcd turinį, norėdamas nustatyti, kaip jis turėtų elgtis.

Valdiklis yra subjektas, kuris imtų instrukcijas iš API serverio (kurias aptarsime vėliau) ir atliks būtinus veiksmus, pvz., programų, paketų kūrimą, ištrynimą ir atnaujinimą.

The API serveris atskleidžia „Kubernetes“ API, kuri naudoja JSON naudingąsias apkrovas per HTTPS, kad galėtų bendrauti su vartotojo sąsaja, su kuria kūrėjų komandos ar „DevOps“ darbuotojai galų gale susisieks. Tiek žiniatinklio vartotojo sąsaja, tiek CLI naudoja šią API sąveikai su „Kubernetes“ grupe.

API serveris taip pat yra atsakingas už ryšį tarp darbininkų mazgų ir įvairių pagrindinių mazgų komponentų, pvz., Etcd.

Pagrindinis mazgas niekada nėra veikiamas galutinio vartotojo, nes tai rizikuoja viso klasterio saugumu.

Kubernetes mazgai

Mašinai (fizinei ar virtualiajai) reikės kelių svarbių komponentų, kuriuos tinkamai įdiegus ir sukonfigūravus, šis serveris gali tapti jūsų „Kubernetes“ grupės nariu.

Pirmas dalykas, kurio jums reikės, yra jame įdiegtas ir paleistas konteinerio vykdymo laikas, pvz., „Docker“. Akivaizdu, kad ji bus atsakinga už konteinerių sukimą ir tvarkymą.

Kartu su „Docker“ vykdymo laiku mums taip pat reikia Kubeletas deimonas. Jis bendrauja su pagrindiniais mazgais per API serverį ir teiraujasi užklausos apie etcd ir pateikia informaciją apie to mazgo, veikiančio tame mazge, sveikatos ir naudojimo informaciją.

Tačiau konteineriai yra gana riboti, todėl „Kubernetes“ turi didesnę abstrakciją, pastatytą ant konteinerių kolekcijos, žinomos kaip Ankštys.

Kam sugalvoti ankštis?

„Docker“ taiko, kad kiekviename konteineryje būtų vykdoma viena programa. Dažnai apibūdinamas kaip „Vienas procesas viename konteineryje“ politiką. Tai reiškia, kad jei jums reikalinga „WordPress“ svetainė, siūloma turėti du konteinerius, kad būtų galima paleisti duomenų bazę, o kitą, kad veiktų žiniatinklio serveris. Sujungus tokius susijusius programos komponentus į dėklą, užtikrinama, kad kaskart išplėtus du tarpusavyje priklausomus sudėtinius rodinius visada egzistuoja tame pačiame mazge ir taip greitai ir lengvai kalbasi tarpusavyje.

Pods yra pagrindinis Kubernetes dislokavimo vienetas. Kai išplėsti mastelį, į grupę įtraukiate daugiau ankščių. Kiekvienam paketui vidiniame klasterio tinkle suteikiamas unikalus IP adresas.

Atgal į „Kubernetes“ mazgą

Dabar mazgas gali paleisti keletą ankščių ir tokių mazgų gali būti daug. Viskas gerai, kol nepagalvoji pabandyti bendrauti su išoriniu pasauliu. Jei turite paprastą internetinę paslaugą, kaip galėtumėte nukreipti savo domeno vardą į šį daugelio IP adresų rinkinį?

Jūs negalite ir neprivalote! Kube-proxy yra paskutinė dėlionės dalis, leidžianti operatoriams atskleisti tam tikras ankštis internete. Pvz., Jūsų sąsaja gali būti viešai prieinama, o „kube-proxy“ paskirstytų srautą tarp visų įvairių ankščių, kurios yra atsakingos už tvarkymą. Tačiau jūsų duomenų bazės nereikia skelbti viešai, o „kube-proxy“ leistų tik vidinį ryšį tokiems su aplinka susijusiems darbo krūviams.

Ar tau viso to reikia?

Jei tik pradedate dirbti mėgėju ar studentu, naudoti „Kubernetes“ paprastai programai iš tikrųjų būtų neefektyvu. Visa „rigmarole“ sunaudotų daugiau išteklių nei jūsų faktinė programa ir padidintų painiavą vienam asmeniui.

Tačiau jei ketinate dirbti su didele komanda ir diegiate savo programas rimtam komerciniam naudojimui, „Kubernetes“ verta papildyti pridėtinėmis išlaidomis. Galite sustabdyti reikalus nuo chaotiškumo. Padarykite vietą techninei priežiūrai be prastovų. Nustatykite puikias A / B testavimo sąlygas ir palaipsniui skirstykite, neišleisdami per daug lėšų infrastruktūrai.

Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...
„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...