Mar ba chúis le tosaíochtaí pod in Kubernetes aga neamhfhónaimh ag Grafana Labs

Nóta. aistrigh.: Cuirimid i láthair d'aird sonraí teicniúla faoi na cúiseanna atá leis an aga neamhfhónaimh le déanaí sa tseirbhís néal a chothaigh cruthaitheoirí Grafana. Is sampla clasaiceach é seo den chaoi ar féidir le gné nua atá thar a bheith úsáideach, atá deartha chun cáilíocht an bhonneagair a fheabhsú... dochar a dhéanamh mura ndéanann tú foráil do na nuances iomadúla a bhaineann lena chur i bhfeidhm i réaltachtaí an táirgthe. Tá sé iontach nuair a bhíonn ábhair mar seo le feiceáil a ligeann duit foghlaim ní hamháin ó do bhotúin. Tá sonraí san aistriúchán ar an téacs seo ó leas-uachtarán táirge ó Grafana Labs.

Mar ba chúis le tosaíochtaí pod in Kubernetes aga neamhfhónaimh ag Grafana Labs

Ar an Aoine, 19 Iúil, stop an tseirbhís Hosted Prometheus i Grafana Cloud ag feidhmiú ar feadh thart ar 30 nóiméad. Gabhaim leithscéal leis na custaiméirí go léir a ndeachaigh an briseadh isteach orthu. Is é an post atá againn ná na huirlisí monatóireachta atá uait a sholáthar, agus tuigimid go bhféadfadh sé do shaol a dhéanamh níos deacra mura gcuirtear ar fáil iad. Glacaimid an eachtra seo thar a bheith dáiríre. Míníonn an nóta seo cad a tharla, conas a d’fhreagair muid, agus cad atá á dhéanamh againn chun a chinntiú nach dtarlóidh sé arís.

réamhstair

Tá seirbhís Grafana Cloud Hosted Prometheus bunaithe ar Cortex — Tionscadal CNCF chun seirbhís Prometheus ilthionónta atá inscálaithe go cothrománach, atá ar fáil go mór, a chruthú. Is éard atá i ailtireacht Cortex ná sraith de mhicrisheirbhísí aonair, a chomhlíonann gach ceann acu a fheidhm féin: macasamhlú, stóráil, fiosrúcháin, etc. Tá Cortex á fhorbairt go gníomhach agus tá sé i gcónaí ag cur gnéithe nua agus ag feabhsú feidhmíochta. Déanaimid eisiúintí Cortex nua a imscaradh go rialta chuig cnuasaigh ionas gur féidir le custaiméirí leas a bhaint as na gnéithe seo - go fortunately, is féidir Cortex a nuashonrú gan aga neamhfhónaimh.

Le haghaidh nuashonruithe gan uaim, éilíonn seirbhís Ingester Cortex macasamhail Ingester breise le linn an phróisis nuashonraithe. (Nóta. aistrigh.: Ingester - an chomhpháirt bhunúsach den cortex. Is é an post atá aige ná sruth leanúnach samplaí a bhailiú, iad a ghrúpáil i smután Prometheus agus iad a stóráil i mbunachar sonraí mar DynamoDB, BigTable nó Cassandra.) Ligeann sé seo d’Inghéistí d’aois sonraí reatha a chur ar aghaidh chuig Ionghlacadóirí nua. Is fiú a thabhairt faoi deara go bhfuil éileamh acmhainne ag Ingesters. Chun go n-oibreoidh siad, ní mór duit 4 chroílár agus 15 GB de chuimhne a bheith agat in aghaidh an phod, i.e. 25% de chumhacht próiseála agus cuimhne an mheaisín bonn i gcás ár mbraislí Kubernetes. Go ginearálta, tá i bhfad níos mó acmhainní neamhúsáidte againn sa bhraisle ná 4 chroílár agus 15 GB de chuimhne, ionas gur féidir linn na hionghabhálacha breise seo a chasadh go héasca le linn uasghráduithe.

Mar sin féin, is minic a tharlaíonn sé le linn gnáthoibriúcháin nach bhfuil an 25% seo d'acmhainní neamhúsáidte ag aon cheann de na meaisíní. Sea, ní dhéanaimid ár ndícheall fiú: beidh LAP agus cuimhne úsáideach i gcónaí do phróisis eile. Chun an fhadhb seo a réiteach, shocraigh muid úsáid a bhaint as Tosaíochtaí Pod Kubernetes. Is é an smaoineamh tosaíocht níos airde a thabhairt do Iongálaithe ná do mhicrisheirbhísí eile (gan stát). Nuair is gá dúinn Ingester breise (N+1) a rith, díláithrímid go sealadach pods eile níos lú. Aistrítear na pods seo chuig acmhainní saor in aisce ar mheaisíní eile, rud a fhágann “poll” mór go leor chun Ingester breise a rith.

Ar an Déardaoin, 18 Iúil, chuireamar ceithre leibhéal tosaíochta nua i bhfeidhm inár mbraislí: criticiúil, ard, mheán и íseal. Rinneadh tástáil orthu ar bhraisle inmheánach gan trácht cliant ar feadh thart ar sheachtain amháin. De réir réamhshocraithe, faightear pods gan tosaíocht shonraithe mheán tosaíochta, socraíodh rang do Ingsters le ard tosaíochta. Criticiúil curtha in áirithe le haghaidh monatóireachta (Prometheus, Alertmanager, nód-onnmhaireoir, kube-state-metrics, etc.). Tá ár config oscailte, agus is féidir leat féachaint ar an PR anseo.

Timpiste

Ar an Aoine, 19 Iúil, sheol ceann de na hinnealtóirí braisle nua tiomnaithe Cortex do chliant mór. Níor chuimsigh an chumraíocht don bhraisle seo tosaíochtaí nua pods, mar sin sannadh tosaíocht réamhshocraithe do gach pod nua - mheán.

Ní raibh go leor acmhainní ag braisle Kubernetes don bhraisle Cortex nua, agus níor nuashonraíodh an braisle Cortex táirgthe atá ann cheana féin (fágadh Ingsters gan ard tosaíochta). Ós rud é go raibh Ingesters an bhraisle nua de réir réamhshocraithe mheán tosaíochta, agus d'oibrigh na pods reatha i dtáirgeadh gan tosaíocht ar bith, tháinig Ingesters an bhraisle nua in ionad na n-Ingesters ón mbraisle táirgeachta Cortex atá ann cheana féin.

Braitheadh ​​ReplicaSet don Ingester díshealbhaithe sa bhraisle táirgeachta an pod díshealbhaithe agus chruthaigh sé ceann nua chun an líon sonraithe cóipeanna a choinneáil. Sannadh an pod nua de réir réamhshocraithe mheán tosaíocht, agus chaill Ingester “sean” eile i dtáirgeadh a chuid acmhainní. Ba é an toradh próiseas avalanche, rud a d'fhág gur díláithríodh na pods go léir ó Ingester do bhraislí táirgeachta Cortex.

Bíonn na hionghlacadóirí státmhar agus stórálann siad sonraí don 12 uair roimhe sin. Ligeann sé seo dúinn iad a chomhbhrú ar bhealach níos éifeachtaí roimh iad a scríobh chuig stóráil fhadtéarmach. Chun é seo a bhaint amach, scrúdaíonn Cortex sonraí thar shraith ag baint úsáide as Tábla Hash Dáilte (DHT) agus déanann sé gach sraith a mhacasamhlú thar thrí Ingesters ag baint úsáide as comhsheasmhacht córam ar stíl Dynamo. Ní scríobhann Cortex sonraí chuig Ingsters atá díchumasaithe. Mar sin, nuair a fhágann líon mór Iongálaithe an DHT, ní féidir leis an Cortex macasamhlú leordhóthanach a sholáthar ar na hiontrálacha, agus tuairteanna siad.

Brath agus Feabhsúchán

Fógraí nua Prometheus bunaithe ar "bhuiséad earráide" (earráid-buiséad-bhunaithe — beidh sonraí le feiceáil in alt sa todhchaí) thosaigh sé ag canadh an t-aláram 4 nóiméad tar éis thús an múchta. Thar na cúig nóiméad nó mar sin eile, ritheamar roinnt diagnóisic agus rinneamar bunchnuasach Kubernetes a mhéadú chun na braislí táirgeachta nua agus reatha a óstáil.

Tar éis cúig nóiméad eile, d'éirigh leis na sean-Ingsters a gcuid sonraí a scríobh, thosaigh na cinn nua, agus tháinig na braislí Cortex ar fáil arís.

Caitheadh ​​10 nóiméad eile ag diagnóisiú agus ag ceartú earráidí as cuimhne (OOM) ó sheachvótálaithe frithdheimhnithe atá suite os comhair Cortex. Tharla earráidí OOM mar gheall ar mhéadú faoi dheichniúr ar QPS (creidimid mar gheall ar iarratais ró-ionsaitheach ó fhreastalaithe Prometheus an chliaint).

Ina dhiaidh sin

Ba é an downtime iomlán ná 26 nóiméad. Níor cailleadh aon sonraí. D'éirigh le hionghlacadóirí na sonraí cuimhne uile a luchtú isteach i stóráil fhadtéarmach. Le linn an múchta, scriosadh freastalaithe cliant Prometheus maoláin (iargúlta) taifeadtaí ag baint úsáide as API nua remote_write bunaithe ar WAL (údar le Callum Styan ó Grafana Labs) agus arís agus arís eile na scríobhann ar theip orthu tar éis na timpiste.

Mar ba chúis le tosaíochtaí pod in Kubernetes aga neamhfhónaimh ag Grafana Labs
Oibríochtaí scríobh braisle táirgeachta

Torthaí

Tá sé tábhachtach foghlaim ón eachtra seo agus na céimeanna riachtanacha a ghlacadh chun nach dtarlóidh sé arís.

Le breathnú siar, níor cheart go mbeadh an réamhshocrú socraithe againn mheán tosaíocht go dtí go mbeidh gach Ionghlacadóir i dtáirgeadh faighte ard tosaíocht. Ina theannta sin, bhí sé riachtanach aire a thabhairt dóibh roimh ré ard tosaíochta. Tá gach rud socraithe anois. Tá súil againn go gcabhróidh ár dtaithí le heagraíochtaí eile atá ag smaoineamh ar thosaíochtaí pod a úsáid in Kubernetes.

Cuirfimid leibhéal breise rialaithe leis ar imscaradh aon réad breise a bhfuil a bhfoirmíochtaí domhanda sa bhraisle. As seo amach, déanfar athruithe den sórt sin a mheas bоníos mó daoine. Ina theannta sin, measadh go raibh an modhnú ba chúis leis an timpiste róbheag le haghaidh doiciméad tionscadail ar leith - níor pléadh é ach i saincheist GitHub. As seo amach, beidh doiciméadú tionscadail chuí ag gabháil le gach athrú dá leithéid ar chumraíochtaí.

Ar deireadh, déanfaimid athrú ar mhéid an seachvótálaí droim ar ais fíordheimhnithe chun an ró-ualach OOM a chonaiceamar a chosc, agus déanfaimid athbhreithniú ar shocruithe réamhshocraithe Prometheus a bhaineann le cúl-ais agus scálú chun saincheisteanna comhchosúla a chosc amach anseo.

Bhí roinnt iarmhairtí dearfacha ag an teip freisin: tar éis dó na hacmhainní riachtanacha a fháil, d'aisghabh Cortex go huathoibríoch gan idirghabháil bhreise. Fuaireamar taithí luachmhar ag obair le Grafana Loki - ár gcóras comhiomlánaithe logaí nua - a chuidigh lena chinntiú gur iompair gach Ionsóir i gceart le linn na teipe agus ina diaidh.

PS ó aistritheoir

Léigh freisin ar ár mblag:

Foinse: will.com

Add a comment