Kubernetes: Luasaigh do chuid seirbhísí trí theorainneacha LAP a bhaint

Ar ais i 2016 táimid ag Buffer aistrigh go Kubernetes, agus anois tá thart ar 60 nód (ar AWS) agus 1500 coimeádán ag obair ar ár gcnuasach k8s arna mbainistiú ag cóbanna. Mar sin féin, bhogamar go dtí micreasheirbhísí trí thriail agus earráid, agus fiú tar éis roinnt blianta ag obair le k8s tá fadhbanna nua fós againn. Sa phost seo beimid ag caint faoi teorainneacha próiseálaí: cén fáth ar cheap muid gur dea-chleachtas iad agus cén fáth nach raibh siad chomh maith sin sa deireadh.

Teorainneacha próiseálaithe agus smeartha

Cosúil le go leor úsáideoirí Kubernetes eile, Molann Google go mór teorainneacha LAP a shocrú. Gan socrú den sórt sin, is féidir le coimeádáin i nód an chumhacht próiseálaí go léir a ghlacadh, rud is cúis le próisis thábhachtacha Kubernetes (mar shampla kubelet(c) stopfaidh sé ag freagairt iarrataí. Mar sin, is bealach maith é teorainneacha LAP a shocrú chun do nóid a chosaint.

Socraíonn teorainneacha próiseálaithe coimeádán go dtí an t-uasmhéid ama LAP is féidir é a úsáid ar feadh tréimhse ar leith (is é 100ms an réamhshocrú), agus ní sháróidh an coimeádán an teorainn seo choíche. I Kubernetes le haghaidh sníomh coimeádán agus é a chosc ó bheith níos mó ná an teorainn, úsáidtear uirlis speisialta Cuóta CFS, ach déanann na teorainneacha LAP saorga seo an fheidhmíocht a ghortú agus am freagartha do choimeádáin a mhéadú.

Cad is féidir a tharlóidh mura socróimid teorainneacha próiseálaithe?

Ar an drochuair, bhí orainn féin aghaidh a thabhairt ar an bhfadhb seo. Tá próiseas ag gach nód atá freagrach as coimeádáin a bhainistiú kubelet, agus stop sé ag freagairt iarratais. Beidh an nód, nuair a tharlaíonn sé seo, dul isteach sa stát NotReady, agus déanfar coimeádáin uaidh a atreorú áit éigin eile agus cruthaítear na fadhbanna céanna ar nóid nua. Ní cás iontach é, a rá a laghad.

Léiriú ar fhadhb na smeartha agus na freagartha

Is é an príomh-mhéadrach do rianú coimeádán trottling, léiríonn sé cé mhéad uair a throttled do choimeádán. Thugamar faoi deara go spéisiúil láithreacht sníomhacháin i gcoimeádáin áirithe, is cuma an raibh ualach an phróiseálaí an-mhór nó nach raibh. Mar shampla, déanaimis féachaint ar cheann dár bpríomh APIanna:

Kubernetes: Luasaigh do chuid seirbhísí trí theorainneacha LAP a bhaint

Mar a fheiceann tú thíos, tá an teorainn socraithe againn 800m (0.8 nó 80% croí), agus buaicluachanna ag an teacht is fearr 200m (croílár 20%). Is cosúil go bhfuil neart próiseálaí fós againn roimh an tseirbhís a bhrú, áfach...

Kubernetes: Luasaigh do chuid seirbhísí trí theorainneacha LAP a bhaint
B'fhéidir gur thug tú faoi deara, fiú nuair a bhíonn ualach an phróiseálaí faoi bhun na dteorainneacha sonraithe - go mór faoi bhun - go dtarlaíonn scata fós.

Agus é seo ina éadan, fuaireamar roinnt acmhainní go luath (fadhb ar github, Cur i láthair ar zadano saor in aisce,, post ar omio(c) faoin laghdú ar fheidhmíocht agus ar am freagartha na seirbhísí de bharr scata.

Cén fáth a bhfeicimid scata ualach íseal LAP? Is é an leagan gearr: “tá fabht san eithne Linux a fhágann go bhfuil coimeádáin á sreapadh gan ghá le teorainneacha próiseálaithe sonraithe.” Má tá suim agat i nádúr na faidhbe, is féidir leat an cur i láthair a léamh (físeán и téacs roghanna) le Dave Chiluk.

Srianta LAP a bhaint (go han-chúramach)

Tar éis plé fada, bheartaíomar srianta próiseálaí a bhaint de na seirbhísí go léir a chuir isteach go díreach nó go hindíreach ar fheidhmiúlacht ríthábhachtach dár n-úsáideoirí.

Ní raibh an cinneadh éasca mar tá an-mheas againn ar chobhsaíocht ár mbraisle. San am a chuaigh thart, tá tástáil déanta againn cheana féin ar éagobhsaíocht ár mbraisle, agus ansin d'ídigh na seirbhísí an iomarca acmhainní agus chuir siad moill ar obair a nód iomlán. Anois bhí gach rud beagán difriúil: bhí tuiscint shoiléir againn ar a raibh súil againn leis ónár gcnuasaigh, chomh maith le straitéis mhaith chun na hathruithe pleanáilte a chur i bhfeidhm.

Kubernetes: Luasaigh do chuid seirbhísí trí theorainneacha LAP a bhaint
Comhfhreagras gnó ar cheist phráinneach.

Conas do nóid a chosaint nuair a chuirtear srianta i leataobh?

Seirbhísí “gan srian” a leithlisiú:

San am atá caite, tá roinnt nóid feicthe againn cheana féin ag dul isteach i stát notReady, go príomha mar gheall ar sheirbhísí a d'ídigh an iomarca acmhainní.

Shocraigh muid seirbhísí den sórt sin a chur i nóid ar leith (“lipéadaithe”) ionas nach gcuirfidh siad isteach ar sheirbhísí “gaolmhara”. Mar thoradh air sin, trí roinnt nóid a mharcáil agus trí pharaiméadar lamháltais a chur le seirbhísí “neamhghaolmhara”, bhaineamar amach smacht níos mó ar an mbraisle, agus d’éirigh linn fadhbanna le nóid a aithint. Chun próisis den chineál céanna a dhéanamh tú féin, is féidir leat dul i dtaithí orthu doiciméadú.

Kubernetes: Luasaigh do chuid seirbhísí trí theorainneacha LAP a bhaint

Próiseálaí ceart agus iarratas cuimhne a shannadh:

Ba é an t-eagla ba mhó a bhí orainn ná go n-ídódh an próiseas an iomarca acmhainní agus go stopfadh an nód freagra a thabhairt ar iarratais. Ón am seo (a bhuíochas le Datadog) d’fhéadfaimis monatóireacht shoiléir a dhéanamh ar na seirbhísí go léir ar ár mbraisle, rinne mé anailís ar roinnt míonna oibríochta orthu siúd a bhí beartaithe againn a ainmniú mar “neamhghaolmhar”. Shocraigh mé go simplí an úsáid uasta LAP le corrlach de 20%, agus mar sin leithdháilte spás sa nód ar eagla go ndéanann k8s iarracht seirbhísí eile a shannadh don nód.

Kubernetes: Luasaigh do chuid seirbhísí trí theorainneacha LAP a bhaint

Mar a fheiceann tú sa ghraf, tá an t-ualach uasta ar an bpróiseálaí sroichte 242m Cores CPU (0.242 croíleacáin phróiseálaithe). Ar iarratas próiseálaí, is leor uimhir a ghlacadh beagán níos mó ná an luach seo. Tabhair faoi deara, le do thoil, ós rud é go bhfuil na seirbhísí úsáideoir-lárnach, go dtagann buaicluachanna ualaigh le trácht.

Déan mar an gcéanna le húsáid chuimhne agus ceisteanna, agus voila - tá tú ar fad socraithe! Ar mhaithe le slándáil níos fearr, is féidir leat uathscálú cothrománach pod a chur leis. Mar sin, gach uair a bhíonn an t-ualach acmhainní ard, cruthóidh uathscálú pods nua, agus déanfaidh kubernetes iad a dháileadh ar nóid le spás saor in aisce. I gcás nach bhfuil aon spás fágtha sa bhraisle féin, is féidir leat foláireamh a shocrú duit féin nó nóid nua a chur leis trína n-uathscálú.

De na míbhuntáistí, is fiú a thabhairt faoi deara gur chaill muid i “dlús coimeádán", i.e. líon na gcoimeádán ag rith ar nód amháin. D’fhéadfadh go leor “scítheanna” a bheith againn freisin ar dhlús íseal tráchta, agus tá seans ann freisin go mbainfidh tú ualach próiseálaí ard amach, ach ba cheart go gcabhródh nóid uathscálaithe leis an dara ceann.

Torthaí

Tá áthas orm na torthaí iontacha seo ó thurgnaimh le seachtainí beaga anuas a fhoilsiú; tá feabhsuithe suntasacha feicthe againn cheana féin ar na seirbhísí modhnaithe go léir:

Kubernetes: Luasaigh do chuid seirbhísí trí theorainneacha LAP a bhaint

Bhaineamar na torthaí is fearr amach ar ár leathanach baile (buffer.com), there the service accelerate in dhá uair is fiche!

Kubernetes: Luasaigh do chuid seirbhísí trí theorainneacha LAP a bhaint

An bhfuil fabht eithne Linux socraithe?

Yes, Tá an fabht socraithe cheana féin agus tá an socrú curtha leis an eithne dáileacháin leagan 4.19 agus níos airde.

Mar sin féin, ar léamh fadhbanna kubernetes ar github don dara Meán Fómhair 2020 tagaimid fós ar roinnt tionscadal Linux a bhfuil fabht cosúil leo. Creidim go bhfuil an fabht seo fós ag roinnt dáiltí Linux agus níl siad ach ag obair ar é a shocrú.

Má tá do leagan dáileacháin níos ísle ná 4.19, mholfainn nuashonrú chomh fada agus is déanaí, ach ar aon nós ba chóir duit iarracht a dhéanamh na srianta próiseálaí a bhaint agus féachaint an leanann an scóig. Anseo thíos is féidir leat liosta páirteach de sheirbhísí bainistíochta Kubernetes agus dáiltí Linux a fheiceáil:

  • Debian: fix comhtháite leis an leagan is déanaí den dáileadh, Béarlagair, agus cuma úr go leor (Lúnasa 2020). Seans go mbeidh roinnt leaganacha roimhe seo socraithe freisin.
  • Ubuntu: fix comhtháite sa leagan is déanaí Ubuntu Focal Fossa 20.04
  • Tá réiteach faighte ag EKS fós i mí na Nollag 2019. Má tá do leagan níos ísle ná seo, ba cheart duit an AMI a nuashonrú.
  • COP: Ó mhí an Mheithimh 2020 у kops 1.18+ Ubuntu 20.04 a bheidh mar phríomhíomhá óstach. Má tá do leagan de kops níos sine, b'fhéidir go mbeidh ort fanacht le réiteach. Táimid féin ag fanacht anois.
  • GKE (Google Cloud): Fix comhtháite i mí Eanáir 2020, áfach, tá fadhbanna le sníomh fós faoi deara.

Cad atá le déanamh má shocraigh an deisiú an fhadhb smeartha?

Níl mé cinnte go bhfuil an fhadhb réitithe go hiomlán. Nuair a bhainfimid an leagan eithne leis an socrú, déanfaidh mé an braisle a thástáil agus an postáil a nuashonrú. Má tá nuashonrú déanta ag éinne cheana féin, bheadh ​​suim agam do thorthaí a léamh.

Conclúid

  • Má oibríonn tú le coimeádáin Docker faoi Linux (is cuma Kubernetes, Mesos, Swarm nó daoine eile), d'fhéadfadh go gcaillfidh do choimeádáin feidhmíocht mar gheall ar throttling;
  • Déan iarracht an leagan is déanaí de do dháileadh a nuashonrú le súil go bhfuil an fabht socraithe cheana féin;
  • Déanfar an fhadhb a réiteach trí theorainneacha próiseálaí a bhaint, ach is teicníc chontúirteach é seo ba chóir a úsáid go han-chúramach (is fearr an eithne a nuashonrú ar dtús agus na torthaí a chur i gcomparáid);
  • Má tá teorainneacha LAP bainte agat, déan monatóireacht chúramach ar d’úsáid LAP agus cuimhne agus cinntigh go bhfuil d’acmhainní LAP ag dul thar do thomhaltas;
  • Rogha shábháilte a bheadh ​​ann pods a uathscálú chun pods nua a chruthú i gcás ualach crua-earraí arda, ionas go sannann kubernetes do nóid in aisce iad.

Tá súil agam go gcabhraíonn an post seo leat feidhmíocht do chórais coimeádáin a fheabhsú.

PS Anseo comhfhreagraíonn an t-údar le léitheoirí agus tráchtairí (i mBéarla).


Foinse: will.com

Add a comment