7 bestu starfsvenjur til að nota ílát samkvæmt Google

Athugið. þýð.: Höfundur upprunalegu greinarinnar er Théo Chamley, Google Cloud Solutions Architect. Í þessari færslu fyrir Google Cloud bloggið gefur hann samantekt á ítarlegri handbók fyrirtækis síns, sem heitir "Bestu starfshættir fyrir rekstur gáma" Þar söfnuðu sérfræðingar Google bestu starfsvenjum fyrir rekstur gáma í samhengi við notkun Google Kubernetes Engine og fleira, sem snerta margs konar efni: allt frá öryggi til eftirlits og skráningar. Svo hverjar eru mikilvægustu gámavenjurnar samkvæmt Google?

7 bestu starfsvenjur til að nota ílát samkvæmt Google

Kubernetes vél (Kubernetes-byggð þjónusta til að keyra gámaforrit á Google Cloud - ca. þýðing) er ein besta leiðin til að keyra vinnuálag sem þarf að stækka. Kubernetes mun tryggja hnökralausa virkni flestra forrita ef þau eru í gámum. En ef þú vilt að auðvelt sé að stjórna forritinu þínu og vilt nýta Kubernetes til fulls þarftu að fylgja bestu starfsvenjum. Þeir munu einfalda rekstur forritsins, eftirlit með því og villuleit og auka öryggi.

Í þessari grein munum við fara í gegnum lista yfir hluti sem þú ættir að vita og gera til að keyra gáma á áhrifaríkan hátt á Kubernetes. Þeir sem vilja fara dýpra í smáatriði ættu að lesa efnið Bestu starfshættir fyrir rekstur gáma, og einnig gaum að okkar fyrri færslu um samsetningu gáma.

1. Notaðu innfæddan gámaskráningarbúnað

Ef forritið er í gangi á Kubernetes þyrping, þarf ekki mikið fyrir logs. Miðstýrt skógarhöggskerfi er líklega þegar innbyggt í þyrpinguna sem þú notar. Ef um er að ræða notkun Kubernetes Engine er þetta ábyrgt Stackdriver skógarhögg. (Athugið. þýð.: Og ef þú notar þína eigin Kubernetes uppsetningu, mælum við með því að skoða betur opna uppspretta lausnina okkar - timburhús.) Haltu lífi þínu einfalt og notaðu innfæddan gámaskráningarbúnað. Skrifaðu logs til stdout og stderr - þeir verða sjálfkrafa mótteknir, vistaðir og verðtryggðir.

Ef þess er óskað geturðu líka skrifað logs til JSON sniði. Þessi nálgun mun gera það auðvelt að bæta lýsigögnum við þau. Og með þeim mun Stackdriver Logging hafa getu til að leita í gegnum annála með því að nota þessi lýsigögn.

2. Gakktu úr skugga um að ílát séu ríkisfangslaus og óbreytanleg

Til að gámar virki rétt í Kubernetes klasa verða þeir að vera ríkisfangslausir og óbreytanlegir. Þegar þessum skilyrðum er fullnægt getur Kubernetes unnið starf sitt, búið til og eyðilagt forritaeiningar þegar og þar sem þörf er á.

Ríkislaus þýðir að hvaða ástand sem er (viðvarandi gögn hvers konar) er geymt utan ílátsins. Fyrir þetta, allt eftir þörfum, er hægt að nota mismunandi gerðir af ytri geymslu: Cloud Storage, Viðvarandi diskar, Redis, Ský SQL eða öðrum stýrðum gagnagrunnum. (Athugið. þýð.: Lestu meira um þetta í greininni okkar “Rekstraraðilar fyrir Kubernetes: hvernig á að keyra staðbundin forrit".)

Óbreytanlegt þýðir að gámnum verður ekki breytt á líftíma hans: engar uppfærslur, plástrar, stillingarbreytingar. Ef þú þarft að uppfæra forritakóðann þinn eða nota plástur skaltu búa til nýja mynd og setja hana í notkun. Mælt er með því að færa gámastillinguna (hlustunargátt, valkostir fyrir keyrsluumhverfi, o.s.frv.) ytra - til Secrets и ConfigMaps. Hægt er að uppfæra þær án þess að þurfa að búa til nýja gámamynd. Til að búa til leiðslur auðveldlega með myndsamsetningu geturðu notað Cloud Byggja. (Athugið. þýð.: Við notum Open Source tól í þessum tilgangi dapp.)

7 bestu starfsvenjur til að nota ílát samkvæmt Google
Dæmi um uppfærslu á dreifingarstillingu í Kubernetes með því að nota ConfigMap sem er fest í belg sem stillingu

3. Forðastu forréttindagáma

Þú keyrir ekki forrit sem rót á netþjónunum þínum, ekki satt? Ef árásarmaður kemst inn í forritið fær hann rótaraðgang. Sömu sjónarmið eiga við um að reka ekki forréttindagáma. Ef þú þarft að breyta stillingum á hýsingaraðilanum geturðu gefið ílátinu sérstakt getu með því að nota valkostinn securityContext í Kubernetes. Ef þú þarft að breyta sysctls, Kubernetes hefur sérstakt ágrip fyrir þetta. Reyndu almennt að gera sem mest úr í því- og hliðarvagnagáma til að framkvæma svipaðar forréttindaaðgerðir. Þeir þurfa hvorki að vera aðgengilegir fyrir innri né utanaðkomandi umferð.

Ef þú stjórnar klasa geturðu notað Öryggisstefna pod um takmarkanir á notkun forréttindagáma.

4. Forðastu að keyra sem rót

Nú þegar hefur verið rætt um forréttindagáma, en það verður enn betra ef til viðbótar þessu er ekki keyrt forrit inni í gámnum sem rót. Ef árásarmaður finnur fjarlægan varnarleysi í forriti með rótarréttindi sem leyfir keyrslu kóða, eftir það getur hann yfirgefið gáminn í gegnum enn óþekkt varnarleysi, mun hann ná rótum á hýsilinn.

Besta leiðin til að forðast þetta er að keyra ekki neitt sem rót í fyrsta lagi. Til að gera þetta geturðu notað tilskipunina USER в Dockerfile eða runAsUser í Kubernetes. Klasastjórnandinn getur einnig stillt framfylgdarhegðun með því að nota Öryggisstefna pod.

5. Gerðu forritið auðvelt að fylgjast með

Eins og skógarhögg er eftirlit óaðskiljanlegur hluti af stjórnun forrita. Vinsæl eftirlitslausn í Kubernetes samfélaginu er Prometheus - kerfi sem skynjar sjálfkrafa belg og þjónustu sem þarfnast eftirlits. (Athugið. þýð.: Sjá einnig okkar nákvæma skýrslu um efnið vöktun með Prometheus og Kubernetes.) Stackdriver er fær um að fylgjast með Kubernetes þyrpingum og inniheldur sína eigin útgáfu af Prometheus fyrir eftirlit með forritum.

7 bestu starfsvenjur til að nota ílát samkvæmt Google
Kubernetes mælaborð á Stackdriver

Prometheus býst við að forritið sendi mælingar til HTTP endapunktsins. Í boði fyrir þetta Prometheus viðskiptavinasöfn. Sama snið er notað af öðrum verkfærum eins og OpenCensus и Sama.

6. Gerðu heilsufarsstöðu appsins aðgengilega

Umsjónastjórnun í framleiðslu er studd af getu þess til að miðla ástandi sínu til alls kerfisins. Er forritið í gangi? Er það í lagi? Ertu tilbúinn til að taka á móti umferð? Hvernig hagar hann sér? Algengasta leiðin til að leysa þetta vandamál er að innleiða heilbrigðiseftirlit (heilsueftirlit). Kubernetes hefur tvær gerðir: lífleika- og viðbúnaðarrannsóknir.

Fyrir lífleikarannsókn (lífspróf) forritið verður að hafa HTTP endapunkt sem skilar "200 OK" svari ef það er virkt og grunnháð þess er fullnægt. Fyrir viðbúnaðarrannsókn (athuganir á þjónustubúnaði) forritið verður að hafa annan HTTP endapunkt sem skilar "200 OK" svari ef forritið er í heilbrigðu ástandi, frumstillingarskrefum hefur verið lokið og öll gild beiðni leiðir ekki til villu. Kubernetes mun aðeins beina umferð í gáminn ef forritið er tilbúið í samræmi við þessar athuganir. Hægt er að sameina tvo endapunkta ef enginn munur er á lífleika- og viðbúnaðarstigum.

Þú getur lesið meira um þetta í tengdri grein frá Sandeep Dinesh, Developer Advocate frá Google: “Bestu starfsvenjur Kubernetes: Setja upp heilsufarsskoðanir með viðbúnaðar- og lífskönnunum'.

7. Veldu myndútgáfu þína vandlega

Flestar opinberar og einka myndir nota merkingarkerfi svipað því sem lýst er í Bestu starfshættir fyrir byggingu gáma. Ef myndin notar kerfi nálægt merkingarfræðileg útgáfa, það er nauðsynlegt að taka tillit til sérstakra merkinga. Til dæmis, tag latest getur færst oft frá mynd til myndar - ekki er hægt að treysta á það ef þú þarft fyrirsjáanlegar og endurteknar byggingar og uppsetningar.

Þú getur notað merkið X.Y.Z (þeir eru nánast alltaf óbreyttir), en í þessu tilfelli skaltu fylgjast með öllum plástra og uppfærslum á myndinni. Ef myndin sem þú ert að nota er með merki X.Y, þetta er góður kostur fyrir hinn gullna meðalveg. Með því að velja það færðu sjálfkrafa plástra og treystir á sama tíma á stöðugri útgáfu forritsins.

PS frá þýðanda

Lestu líka á blogginu okkar:

Heimild: www.habr.com

Bæta við athugasemd