
Kubernetes klastrit luues vĂ”ivad tekkida kĂŒsimused: kui palju tööjĂ€rgseid sĂ”lmi seadistada ja millisest tĂŒĂŒbist? Mis on parem on-premise klastrile: osta mitu vĂ”imsat serverit vĂ”i kasutada oma andmekeskuses tosin vanemat masinat? Pilves on parem valida kahe neljatuumalise eksemplari asemel kaheksa ĂŒhetuumalist?
Nendele kĂŒsimustele leiate vastused artiklist tĂ”lginud meeskond .
Klastri maht
Ăldiselt vĂ”ib Kubernetes klastrit pidada suureks 'super sĂ”lmeks'. Selle koguvĂ”imekus on kĂ”igi komponentide sĂ”lmede vĂ”imsuse summa.
On mitu viisi, kuidas soovitud klastrimahtu saavutada. NÀiteks vajame klastrit, mille koguvÔimsus on 8 protsessorituuma ja 32 GB mÀlu, kuna rakenduste komplekt nÔuab nii palju ressursse. Seega vÔib installida kaks 16 GB mÀluga sÔlme vÔi neli 8 GB mÀluga sÔlme, kaks neljatuumalist protsessorit vÔi neli kahetuumalist.
Siin on ainult kaks vÔimalikku viisi klastrite loomiseks:

MĂ”lemad valikud pakuvad sama suure mahutavusega klastreid, kuid allosas on neli vĂ€iksemat sĂ”lme, samas kui ĂŒlas on kaks suuremat.
Milline variant on parem?
Sellele kĂŒsimusele vastamiseks vaatame mĂ”lema variandi eeliseid. Oleme need kokku vĂ”tnud tabelisse.
MÔned suured sÔlmed
Palju vÀikeseid sÔlmi
Lihtsam klastrihalduse korraldamine (kui see on on-premise)
Suumimine sujuvalt
Odavam (kui on-premise)
Hind on pilves vÀhe erinev
Saab kÀivitada ressursimahukaid rakendusi
TĂ€ielik replikatsioon
Ressursse kasutatakse efektiivsemalt (vĂ€hem overhead'i sĂŒsteemide demonitele)
Klastri talitluspĂŒsivus on kĂ”rgem
Pange tÀhele, et rÀÀgime ainult töösÔlmedest. Peamiste sÔlmede arvu ja suuruse valik on tÀiesti teine teema.
Nii et arutame iga tabelis olevaid punkte lÀhemalt.
Esimene variant: mÔned suured sÔlmed
KĂ”ige ÀÀrmuslikum variant â ĂŒks töösĂ”lm kogu klastrime mahutavuse jaoks. Ălalpool oli see ĂŒks töösĂ”lm 16 CPU tuuma ja 16 GB RAM-iga.
Plussid
Pluss â 1. Lihtsam haldamine
Korraga mitmete masinate haldamine on lihtsam kui terve pargi. Uuenduste ja paranduste rakendamine on kiirem ning sĂŒnkroniseerimine lihtsam. Kahtlemata on ka tĂ”rgete arv madalam.
Pange tÀhele, et kÔik eelnevalt öeldu kehtib teie enda riistvara ja serverite kohta, mitte pilvandmetöötluse instantside kohta.
Pilves on olukord teine. Seal haldab seda pilvandmeteenuse pakkuja. Seega ei erine kĂŒmne sĂ”lme haldamine pilves kuigi palju ĂŒhe sĂ”lme haldamisest.
Liikluse suunamine ja koormuse jaotamine pilve podide vahel : internetist tulev liiklus suunatakse pĂ”hikoormuse tasakaalustajale, mis suunab liikluse ĂŒhe sĂ”lme portsjoni peale (NodePort teenus mÀÀrab sadama vahemikus 30000-32767 igas klastri sĂ”lmes). Kube-proxy kehtestatud reeglid suunavad liikluse sĂ”lme podi. Nii nĂ€eb see vĂ€lja kĂŒmne podi puhul kahel sĂ”lmel:

Plusspunkt Nr 2. Madalamad kulud sÔlme kohta
Tugev masin on kallim, kuid hinna tĂ”us ei ole tingimata lineaarne. TeisisĂ”nu, kĂŒmme tuumaga serverit, millel on 10 GB mĂ€lu, on tavaliselt odavam kui kĂŒmme ĂŒhetuumalist sama mĂ€lu mahuga serverit.
Kuid pidage meeles, et see reegel ei kehti tavaliselt pilveteenuste puhul. TÔsiseltvÔetavate pilveteenuse pakkujate hindade jaotuses tÔusevad hinnad mahutavuse suurenemisega sageli lineaarset rada pidi.
Seega ei saa loota, et pilves oleks odavamate serverite osas sÀÀste.
Pluss nr 3. Saate kÀivitada ressursinÔudlikke rakendusi.
MĂ”ned rakendused vajavad klastris jĂ”ulisi servereid. NĂ€iteks, kui masinĂ”ppe sĂŒsteem nĂ”uab 8 GB mĂ€lu, ei saa te seda kĂ€ivitada 1 GB sĂ”lmedel, vaid ainult juhul, kui vĂ€hemalt ĂŒks suur töö sĂ”lm on olemas.
Miinused
Miinus nr 1. Palju podâe iga sĂ”lme kohta.
Kui sama ĂŒlesanne tĂ€idetakse vĂ€iksema sĂ”lmede arvuga, on igas neist loomulikult rohkem podâe.
See vÔib osutuda probleemiks.
PĂ”hjus on selles, et iga moodul toob kaasa teatud overheadid konteinerikeskkonda (nt Docker), samuti kubeletâi ja cAdvisorâi.
NĂ€iteks kubelet kontrollib pidevalt kĂ”ikide sĂ”lmes olevate konteinerite elujĂ”udlust â mida rohkem konteinereid, seda suurem on kubeleti töökoormus.
CAdvisor kogub kĂ”igi sĂ”lmes olevate konteinerite ressursside kasutamise statistikat, samas kui kubelet kĂŒsib seda teavet regulaarselt ja edastab selle API kaudu. Ehkki, mida rohkem konteinereid, seda rohkem tööd on nii cAdvisoril kui ka kubelet'il.
Kui moodulite arv suureneb, vĂ”ib see sĂŒsteemi aeglustada ja isegi kahjustada selle usaldusvÀÀrsust.

Kubernetes'i hoidlas on mĂ”ned , et sĂ”lmed hĂŒplevad olekute vahel Ready/NotReady, kuna kubeleti regulaarne kontrollimine kĂ”igi sĂ”lmes olevate konteinerite osas vĂ”tab liiga kaua aega.
SeetÔttu soovitab Kubernetes . SÔlme jÔudlusest sÔltuvalt saate kÀivitada rohkem pod'e, kuid on keeruline ennustada, kas tekivad probleemid vÔi kÔik töötab hÀsti. Töökorraldust on mÔistlik eelnevalt testida.
Miinus nr 2. Replikatsiooni piirang
Liigne vÀike sÔlmede arv piirab rakenduste tÔhusat replikatsiooni. NÀiteks, kui teil on kÔrge kÀttesaadavuse rakendus viie replikaga, kuid ainult kaks sÔlme, siis rakenduse efektiivne replikatsiooni tase vÀheneb kahele.
Viit replikat saab jaotada vaid kahe sĂ”lme vahel, ja kui ĂŒks neist ei tööta, rikutakse kokku mitu replikat.
Kui teil on viis vĂ”i rohkem sĂ”lme, kĂ€itatakse iga replika eraldi sĂ”lmel, ja ĂŒhe sĂ”lme tĂ”rge eemaldab mitte rohkem kui ĂŒhe replika.
Seega vÔivad kÔrge kÀttesaadavuse nÔuded nÔuda klastris teatud minimaalset sÔlmede arvu.
Miinus â 3. TĂ”rgete halvemad tagajĂ€rjed
VĂ€ikese sĂ”lmede arvu korral toob iga tĂ”rge kaasa tĂ”sisemaid tagajĂ€rgi. NĂ€iteks, kui teil on vaid kaks sĂ”lme ja ĂŒks neist ebaĂ”nnestub, kaob kohe pool teie moodulitest.
Muidugi, Kubernetes kannab koormuse ebaĂ”nnestunud sĂ”lme teistesse ĂŒle. Kuid kui sĂ”lmi on vĂ€he, vĂ”ib vabast kapasiteetest puududa. Selle tulemusena on osa teie rakendustest kĂ€ttesaamatud, kuni tĂ”rget taastatakse.
Nii et, mida rohkem sÔlmesid on, seda vÀiksem on riistvaravigade mÔju.
Miinus â 4. Suurem automaatne skaleerimine
Kuberneteses töötab pilvinfrastruktuuri automaatse skaleerimise sĂŒsteem, mis vĂ”imaldab automaatselt lisada vĂ”i eemaldada sĂ”lmi vastavalt praegustele vajadustele. Suuremate sĂ”lmedega muutub automaatne skaleerimine jĂ€rsemaks ja kohmakamaks. NĂ€iteks kahel sĂ”lmel uusi sĂ”lmi lisades suureneb klastri maht kohe 50%. Ja peate nende ressursside eest maksma, isegi kui need pole teile vajalikud.
SeetÔttu, kui plaanite kasutada klastri automaatset skaleerimist, siis mida vÀhem sÔlmi on, seda paindlikumat ja odavamat skaleerimist saate.
Vaadakem nĂŒĂŒd vĂ€ikeste sĂ”lmede hulga eelised ja puudused.
Teine variant: palju vÀikeseid sÔlmi
Selle lÀhenemise eelised tulenevad sisuliselt vastupidiste suuremate sÔlmede puudustest.
Plussid
Pluss â 1. VĂ€hem tĂ”rke tagajĂ€rgi
Mida rohkem sĂ”lmi, seda vĂ€hem pod'e on iga sĂ”lme peal. NĂ€iteks, kui teil on sada moodulit kĂŒmne sĂ”lme peal, siis on keskmiselt kĂŒmme moodulit iga sĂ”lme peal.
Seega, kui ĂŒks sĂ”lm peab tĂ”rke, kaotate vaid 10% tööhĂ”ivest. On tĂ”enĂ€oline, et ainult vĂ€ike hulk koopiaid on mĂ”jutatud ning rakendused jÀÀvad ĂŒldiselt töövĂ”imeliseks.
Lisaks on tĂ”enĂ€oline, et ĂŒlejÀÀnud sĂ”lmedel on piisavalt vabu ressursse tĂ”rkunud sĂ”lme tööhĂ”ive jaoks, nii et Kubernetes saab vabalt ĂŒmber planeerida pod'e ja teie rakendused naasevad suhteliselt kiiresti töötavasse olekusse.
Pluss â 2. Hea replikatsioon
Kui sĂ”lmi on piisavalt, saavad Kubernetes'i planeerijad mÀÀrata kĂ”ikidele koopiaile erinevad sĂ”lmed. Seega, kui sĂ”lm kukub vĂ€lja, mĂ”jutatakse vaid ĂŒhte koopiat ja rakendus jÀÀb kĂ€tte saadavaks.
Miinused
Miinus â 1. Raskem juhtimine
Suure hulga sĂ”lmede juhtimine on keerulisem. NĂ€iteks peab iga Kubernetes'i sĂ”lm suhtlema kĂ”ikide teistega, mis tĂ€hendab, et ĂŒhenduste arv kasvab ruudselt ning kĂ”iki neid ĂŒhendusi tuleb jĂ€lgida.
Kubernetesi kontrolleri kontrollib regulaarselt kĂ”iki klastris olevaid sĂ”lmi töökindluse osas â mida rohkem sĂ”lmi, seda suurem on koormus kontrollerile.
Koormus kasvab ka etcd andmebaasile â iga kubelet ja kube-proxy kutsub esile etcd jaoks (API kaudu), millele etcd peab objekti uuendusi edastama.
KokkuvĂ”ttes koormab iga töötav sĂ”lm sĂŒsteemi komponente peamistel sĂ”lmedel.

Kubernetes toetab ametlikult klastreid, millel on . Praktikas vÔivad aga juba 500 sÔlme tekitada mÀrkimisvÀÀrseid probleeme. .
automaatsete seadistuste kaudu Nende konkreetsete probleemide lahendamiseks on spetsiaalsed lahendused, nagu
Virtual Kubelet . See sĂŒsteem vĂ”imaldab ĂŒletada piire ja luua klastreid, milles on tohutul hulgal töönode.
Miinus nr 2. Suuremad kulutused
Iga Kubernetes'i tööjaam kĂ€ivitab rikka sĂŒsteemide deemonite komplekti â nende hulka kuuluvad konteinerite töötluskeskkond (nt Docker), kube-proxy ja kubelet, sealhulgas cAdvisor. Koos tarbivad nad kindla hulga ressursse.
Kui teil on palju vĂ€ikeseid tööjaamu, siis on nende kulutuste osakaal igas tööjaamas suurem. NĂ€iteks kujutage ette, et ĂŒks tööjaam tarbib kokku 0,1 CPU sĂŒdamikku ja 0,1 GB mĂ€lu. Kui teil on ĂŒks kĂŒmneaastane tööjaam, millel on 10 GB mĂ€lu, siis deemonid tarbivad 1% klastrist. Teisalt, kĂŒmnel ĂŒhesĂŒdamikul tööjaamal, kus igaĂŒhel on 1 GB mĂ€lu, vĂ”tavad deemonid kokku 10% klastrist.
Seega, mida vÀhem tööjaamu, seda tÔhusamalt kasutatakse infrastruktuuri.
Miinus nr 3. Ebaefektiivne ressursside kasutamine
VÀikestes tööjaamades vÔivad ressursijÀÀgid olla liiga vÀikesed, et neid mingiks töökoormuseks mÀÀrata, seetÔttu jÀÀvad nad kasutamata.
NĂ€iteks vajab iga pod 0,75 GB mĂ€lu. Kui teil on kĂŒmme sĂ”lme ja igas 1 GB mĂ€lu, saate kĂ€ivitada kĂŒmme podâi â seega jÀÀb igasse sĂ”lmesse 0,25 GB kasutamata mĂ€lu.
See tÀhendab, et 25% kogu klastri mÀlu raisatakse niisama.
Suurel sĂ”lmel, millel on 10 GB mĂ€lu, saate kĂ€ivitada 13 sellist moodulit â ja jÀÀb alles vaid ĂŒks kasutamata 0,25 GB osa.
Sel juhul raisatakse ainult 2,5% mÀlu.
Seega on suurte sÔlmede korral ressursid optimaalsemad.
MÔned suured sÔlmed vÔi palju vÀikeseid?
Nii et, mis on parem: mĂ”ned suured sĂ”lmed klastris vĂ”i palju vĂ€ikeseid? Nagu alati, pole ĂŒheselt vastust. Palju sĂ”ltub rakenduse tĂŒĂŒbist.
NĂ€iteks, kui rakendusele on vajalik 10 GB mĂ€lu, on selge valik suurte sĂ”lmede kasuks. Kuid kui rakendus vajab kĂŒmnekordset kopeerimist kĂ”rge saadavuse saavutamiseks, siis ei tasu riskida, paigutades koopiad vaid kahele sĂ”lmele â klastris peab olema vĂ€hemalt kĂŒmme sĂ”lme.
Vaheolukordades tehke valik, lÀhtudes iga variandi eeliste ja puuduste kaalumisest. VÔibolla on mÔned argumendid teie olukorra jaoks asjakohasemad kui teised.
Ja pole sugugi vajalik, et kĂ”ik sĂ”lmed oleksid sama suurusega. Pole midagi, mis takistaks alguses katsetamast sama suurusega sĂ”lmedega ja seejĂ€rel lisamast erineva suurusega sĂ”lmi, ĂŒhendades neid klastris. Kubernetes klastrite töö sildmed vĂ”ivad olla tĂ€ielikult heterogeensed. Seega vĂ”ite proovida kombineerida mĂ”lema lĂ€henemise eeliseid.
Ăhtset retsepti ei eksisteeri, iga olukord on eriline ja ainult tootmine nĂ€itab tĂ”de.
TÔlge on koostatud pilveplatvormi meeskonna poolt .
Veel Kubernetesest: .
Allikas: habr.com
