Mar a dh’ adhbhraich prìomhachasan pod ann an Kubernetes ùine downt aig Grafana Labs

Thoir an aire. eadar-theangachadh.: Bidh sinn a’ toirt d’ aire mion-fhiosrachadh teicnigeach mu na h-adhbharan airson an ùine downt o chionn ghoirid anns an t-seirbheis sgòthan a tha luchd-cruthachaidh Grafana air a chumail suas. Is e eisimpleir clasaigeach a tha seo air mar a dh’ fhaodadh feart ùr a tha a rèir coltais air leth feumail a chaidh a dhealbhadh gus càileachd bun-structair a leasachadh ... cron adhbhrachadh mura dèan thu ullachadh airson na h-iomadh nuances a thaobh a bhith ga chleachdadh ann an da-rìribh cinneasachadh. Tha e math nuair a nochdas stuthan mar seo a leigeas leat ionnsachadh chan ann a-mhàin bho na mearachdan agad. Tha mion-fhiosrachadh ann an eadar-theangachadh an teacsa seo bho iar-cheann-suidhe toraidh bho Grafana Labs.

Mar a dh’ adhbhraich prìomhachasan pod ann an Kubernetes ùine downt aig Grafana Labs

Air Dihaoine, 19 Iuchar, sguir seirbheis Hosted Prometheus ann an Grafana Cloud ag obair airson timcheall air 30 mionaid. Tha mi duilich airson a h-uile neach-ceannach air an tug an briseadh buaidh. Is e ar n-obair na h-innealan sgrùdaidh a tha a dhìth ort a thoirt seachad, agus tha sinn a’ tuigsinn gum faod mura bi iad rim faighinn do bheatha a dhèanamh nas duilghe. Tha sinn a’ gabhail an tachartas seo gu fìor dha-rìribh. Tha an nota seo a’ mìneachadh dè thachair, mar a fhreagair sinn, agus dè tha sinn a’ dèanamh gus dèanamh cinnteach nach tachair e a-rithist.

ro-eachdraidheil

Tha seirbheis Grafana Cloud Hosted Prometheus stèidhichte air Cortex - Pròiseact CNCF gus seirbheis Prometheus ioma-neach-gabhail a chruthachadh a ghabhas scalladh gu còmhnard. Tha ailtireachd Cortex air a dhèanamh suas de sheata de mhicro-sheirbheisean fa leth, gach fear a’ coileanadh a dhleastanas fhèin: ath-riochdachadh, stòradh, ceistean, msaa. Tha Cortex fo leasachadh gnìomhach agus tha e an-còmhnaidh a’ cur feartan ùra ris agus ag adhartachadh coileanadh. Bidh sinn gu cunbhalach a’ cleachdadh fiosan ùra Cortex gu cruinneachaidhean gus an urrainn do luchd-ceannach brath a ghabhail air na feartan sin - gu fortanach, faodar Cortex ùrachadh gun ùine downt.

Airson ùrachaidhean fuaigheil, feumaidh seirbheis Ingester Cortex mac-samhail Ingester a bharrachd tron ​​​​phròiseas ùrachaidh. (Thoir an aire. eadar-theangachadh.: Ingester - am pàirt bunaiteach den Cortex. Is e an obair aige sruth cunbhalach de shamhlaichean a chruinneachadh, an cruinneachadh ann am pìosan Prometheus agus an stòradh ann an stòr-dàta mar DynamoDB, BigTable no Cassandra.) Leigidh seo le seann Ingsters dàta gnàthach a chuir air adhart gu Ingsters ùra. 'S fhiach toirt fa-near gu bheil Ingsters a' cur feum air goireasan. Gus an obraich iad, feumaidh 4 coraichean agus 15 GB de chuimhne a bhith agad gach pod, i.e. 25% de chumhachd giollachd agus cuimhne an inneal bunaiteach ann an cùis ar cruinneachaidhean Kubernetes. San fharsaingeachd, mar as trice bidh tòrr a bharrachd ghoireasan againn gun chleachdadh anns a’ bhuidheann na 4 cores agus 15 GB de chuimhne, gus an urrainn dhuinn na in-ghabhail a bharrachd sin a shnìomh gu furasta rè ùrachadh.

Ach, bidh e tric a 'tachairt nach eil an 25% de ghoireasan gun chleachdadh aig gin de na h-innealan. Tha, cha bhith sinn eadhon a’ strì: bidh CPU agus cuimhne an-còmhnaidh feumail airson pròiseasan eile. Gus an duilgheadas seo fhuasgladh, chuir sinn romhainn a chleachdadh Prìomhachasan Kubernetes Pod. Is e am beachd prìomhachas nas àirde a thoirt do Ingsters na meanbh-sheirbheisean eile (gun stàite). Nuair a dh’ fheumas sinn Ingester a bharrachd (N + 1) a ruith, bidh sinn a’ cur pods eile, nas lugha às an àite airson ùine ghoirid. Tha na pods sin air an gluasad gu goireasan an-asgaidh air innealan eile, a’ fàgail “toll” mòr gu leòr airson Ingester a bharrachd a ruith.

Air Diardaoin, 18 Iuchar, sgaoil sinn ceithir ìrean prìomhachais ùra gu na cruinneachaidhean againn: èiginneach, àrd, meadhan и ìosal. Chaidh deuchainn a dhèanamh orra air buidheann a-staigh gun trafaic teachdaiche airson timcheall air seachdain. Gu gnàthach, gheibhear pods gun phrìomhachas sònraichte meadhan prìomhachas, chaidh clas a shuidheachadh airson Ingsters le àrd prìomhachas. Critigeach glèidhte airson sgrùdadh (Prometheus, Alertmanager, nóde-exporter, kube-state-metrics, msaa). Tha an rèiteachadh againn fosgailte, agus chì thu am PR an seo.

Tubaist

Air Dihaoine, 19 Iuchar, chuir aon de na h-innleadairean buidheann ùr Cortex air bhog airson teachdaiche mòr. Cha robh an rèiteachadh airson a’ bhuidheann seo a’ toirt a-steach prìomhachasan pod ùra, agus mar sin chaidh prìomhachas bunaiteach a thoirt do gach pod ùr - meadhan.

Cha robh goireasan gu leòr aig buidheann Kubernetes airson a’ bhuidheann ùr Cortex, agus cha deach am buidheann riochdachaidh Cortex a th’ ann mar-thà ùrachadh (chaidh Ingsters fhàgail às aonais àrd prìomhachas). Bho bha aig Ingsters a’ bhuidheann ùr gu bunaiteach meadhan le prìomhachas, agus na pods a th’ ann an-dràsta ann an cinneasachadh ag obair gun phrìomhachas idir, ghabh Ingsters a’ bhuidheann ùr àite nan Ingsters bhon bhuidheann cinneasachaidh Cortex a th’ ann mar-thà.

Lorg ReplicaSet airson an Ingester a chaidh fhuadach anns a’ bhuidheann toraidh am pod a chaidh fhuadach agus chruthaich e fear ùr gus an àireamh ainmichte de leth-bhreacan a chumail. Chaidh am pod ùr a shònrachadh gu bunaiteach meadhan prìomhachas, agus chaill Ingester “seann” eile ann an cinneasachadh a ghoireasan. Bha an toradh pròiseas maoim-sneachda, a lean gu gluasad a h-uile pod bho Ingester airson cruinneachaidhean cinneasachaidh Cortex.

Tha luchd-inntrigidh stàiteil agus bidh iad a’ stòradh dàta airson na 12 uairean roimhe sin. Leigidh seo leinn an teannachadh nas èifeachdaiche mus sgrìobh sinn iad gu stòradh fad-ùine. Gus seo a choileanadh, bidh Cortex a’ roinneadh dàta thairis air sreathan a’ cleachdadh Clàr Hash Distributed (DHT) agus ag ath-aithris gach sreath thairis air trì Ingsters a’ cleachdadh cunbhalachd cuòram ann an stoidhle Dynamo. Cha bhith Cortex a’ sgrìobhadh dàta gu Ingsters a tha ciorramach. Mar sin, nuair a dh’ fhàgas àireamh mhòr de Ingsters an DHT, chan urrainn dha Cortex ath-riochdachadh gu leòr de na h-inntrigidhean a thoirt seachad, agus bidh iad a’ tuiteam.

Dearbhadh agus Leigheas

Brathan ùra Prometheus stèidhichte air "buidseit mearachd" (stèidhichte air buidseat mearachd - nochdaidh mion-fhiosrachadh ann an artaigil san àm ri teachd) thòisich e a’ seirm an inneal-rabhaidh 4 mionaidean às deidh toiseach an dùnadh. Thairis air na còig mionaidean no dhà a tha romhainn, ruith sinn beagan breithneachaidh agus leudaich sinn am buidheann bunaiteach Kubernetes gus aoigheachd a thoirt do na cruinneachaidhean toraidh ùra agus gnàthaichte.

Às deidh còig mionaidean eile, sgrìobh na seann Ingsters an dàta aca gu soirbheachail, thòisich an fheadhainn ùra, agus bha na cruinneachaidhean Cortex rim faighinn a-rithist.

Chaidh 10 mionaidean eile a chaitheamh a’ lorg agus a’ ceartachadh mhearachdan taobh a-muigh cuimhne (OOM) bho luchd-ionaid dearbhaidh a bha suidhichte air beulaibh Cortex. Chaidh mearachdan OOM adhbhrachadh le àrdachadh deich uiread ann an QPS (tha sinn a’ creidsinn mar thoradh air iarrtasan ro ionnsaigheach bho luchd-frithealaidh Prometheus an neach-dèiligidh).

Buaidh

B’ e an ùine downt iomlan 26 mionaidean. Cha deach dàta sam bith a chall. Tha Ingsters air a h-uile dàta cuimhne a luchdachadh gu stòradh fad-ùine. Rè an dùnadh, chaidh frithealaichean teachdaiche Prometheus a dhubhadh às (iomallach) clàran a’ cleachdadh API ùr remote_write stèidhichte air WAL (ùghdar le Calum Styan bho Grafana Labs) agus a-rithist na sgrìobhaidhean a dh’ fhàillig às deidh an tubaist.

Mar a dh’ adhbhraich prìomhachasan pod ann an Kubernetes ùine downt aig Grafana Labs
Obraichean sgrìobhaidh buidheann riochdachaidh

toraidhean

Tha e cudromach ionnsachadh bhon tachartas seo agus na ceumannan riatanach a ghabhail gus nach tachair e a-rithist.

Le bhith a’ coimhead air ais, cha bu chòir dhuinn a bhith air am bunait a shuidheachadh meadhan prìomhachas gus am faigh a h-uile Ingester ann an cinneasachadh àrd prìomhachas. A bharrachd air an sin, bha e riatanach aire a thoirt dhaibh ro làimh àrd prìomhachas. Tha a h-uile dad stèidhichte a-nis. Tha sinn an dòchas gun cuidich an t-eòlas againn buidhnean eile a tha a’ beachdachadh air prìomhachasan pod a chleachdadh ann an Kubernetes.

Cuiridh sinn ìre a bharrachd de smachd air cleachdadh stuthan a bharrachd aig a bheil an rèiteachadh cruinneil don bhuidheann. Bho seo a-mach, thèid na h-atharrachaidhean sin a mheasadh bоbarrachd dhaoine. A bharrachd air an sin, bhathas den bheachd gu robh am mion-atharrachadh a dh’ adhbhraich an tubaist ro bheag airson sgrìobhainn pròiseict air leth - cha deach a dheasbad ach ann an cùis GitHub. Bho seo a-mach, bidh sgrìobhainnean pròiseict iomchaidh an cois gach atharrachadh mar sin air configs.

Mu dheireadh, nì sinn fèin-ghluasad air ath-mheudachadh an neach-ionaid dearbhaidh gus casg a chuir air cus OOM a chunnaic sinn, agus nì sinn ath-sgrùdadh air roghainnean bunaiteach Prometheus co-cheangailte ri tuiteam air ais agus sgèileadh gus casg a chuir air cùisean coltach ris san àm ri teachd.

Bha cuid de bhuilean adhartach aig an fhàilligeadh cuideachd: an dèidh dha na goireasan riatanach fhaighinn, fhuair Cortex air ais gu fèin-ghluasadach às aonais eadar-theachd a bharrachd. Fhuair sinn cuideachd eòlas luachmhor ag obair le Grafana Loki - an siostam cruinneachaidh log ùr againn - a chuidich le bhith a’ dèanamh cinnteach gun robh a h-uile Ingester gan giùlan fhèin gu ceart rè agus às deidh an teip.

PS bhon eadar-theangair

Leugh cuideachd air ar blog:

Source: www.habr.com

Cuir beachd ann