Ahoana no nahatonga ny laharam-pahamehana ao amin'ny Kubernetes tamin'ny fotoana fiatoana tao amin'ny Grafana Labs

Fanamarihana. transl.: Atolotray anao ny antsipiriany ara-teknika momba ny anton'ny fahatapahana farany teo amin'ny serivisy rahona nokarakarain'ny mpamorona ny Grafana. Ity dia ohatra mahazatra amin'ny fomba ahafahan'ny endri-javatra vaovao sy toa tena ilaina natao hanatsarana ny kalitaon'ny fotodrafitrasa... mety hiteraka fahavoazana raha tsy manome ireo nuance maro amin'ny fampiharana azy amin'ny zava-misy amin'ny famokarana ianao. Mahafinaritra rehefa miseho ny fitaovana tahaka izao izay ahafahanao mianatra tsy amin'ny fahadisoanao ihany. Ny antsipiriany dia ao amin'ny fandikana ity lahatsoratra ity avy amin'ny filoha lefitry ny vokatra avy amin'ny Grafana Labs.

Ahoana no nahatonga ny laharam-pahamehana ao amin'ny Kubernetes tamin'ny fotoana fiatoana tao amin'ny Grafana Labs

Tamin'ny zoma 19 Jolay, nijanona teo amin'ny 30 minitra teo ho eo ny serivisy Prometheus Hosted ao Grafana Cloud. Miala tsiny amin'ireo mpanjifa rehetra tratry ny fahatapahana. Ny andraikitray dia ny manome ny fitaovana fanaraha-maso ilainao, ary takanay fa ny tsy fananana azy ireo dia mety hanasarotra ny fiainanao. Raisinay ho zava-dehibe tokoa ity tranga ity. Ity naoty ity dia manazava ny zava-nitranga, ny fomba nandraisanay, ary ny ataonay mba tsy hiverenan'izany intsony.

prehistory

Ny serivisy Grafana Cloud Hosted Prometheus dia mifototra amin'ny Cortex - Tetik'asa CNCF hamorona serivisy Prometheus ho an'ny mpanofa marobe, azo ampiasaina betsaka. Ny maritrano Cortex dia ahitana andiana microservices tsirairay, izay samy manao ny asany manokana: replication, fitehirizana, fanontaniana, sns. Cortex dia eo ambanin'ny fampandrosoana mavitrika ary tsy mitsahatra manampy endri-javatra vaovao sy manatsara ny fahombiazany. Mametraka tsy tapaka ny famoahana Cortex vaovao amin'ny cluster izahay mba ahafahan'ny mpanjifa manararaotra ireo endri-javatra ireo - soa ihany fa azo havaozina tsy misy fiatoana ny Cortex.

Ho an'ny fanavaozana tsy misy farany, ny serivisy Ingester Cortex dia mila kopia Ingester fanampiny mandritra ny fizotran'ny fanavaozana. (Fanamarihana. transl.: Ingester - ny singa fototra amin'ny Cortex. Ny asany dia ny manangona santionany tsy tapaka, manambatra azy ireo amin'ny ampahany Prometheus ary mitahiry azy ireo ao anaty tahiry toy ny DynamoDB, BigTable na Cassandra.) Izany dia mamela ny Ingesters taloha handefa ny angona ankehitriny amin'ny Ingesters vaovao. Tsara ny manamarika fa ny Ingesters dia mitaky loharanon-karena. Mba hahafahan'izy ireo miasa dia mila manana cores 4 sy fahatsiarovana 15 GB isaky ny pod ianao, izany hoe. 25% amin'ny herin'ny fanodinana sy ny fitadidiana ny milina fototra amin'ny tranga misy ny cluster Kubernetes. Amin'ny ankapobeny, manana loharano tsy ampiasaina betsaka kokoa ao amin'ny cluster isika noho ny cores 4 sy fahatsiarovana 15 GB, mba hahafahantsika manodina mora foana ireo ingesters fanampiny ireo mandritra ny fanavaozana.

Na izany aza, matetika no mitranga fa mandritra ny fampandehanana ara-dalΓ na dia tsy misy milina manana io 25% amin'ny loharano tsy ampiasaina io. Eny, tsy miezaka akory izahay: ny CPU sy ny fitadidiana dia ilaina foana amin'ny dingana hafa. Mba hamahana ity olana ity, dia nanapa-kevitra ny hampiasa Laharam-pahamehana amin'ny Kubernetes Pod. Ny hevitra dia ny hanome ny Ingesters ho laharam-pahamehana kokoa noho ny microservices hafa (tsy misy fanjakana). Rehefa mila manao Ingester fanampiny (N+1) isika, dia mamindra fohifohy ny pod hafa kely kokoa. Ireo pods ireo dia afindra any amin'ny loharano maimaim-poana amin'ny milina hafa, mamela "lavaka" lehibe mba hampandehanana Ingester fanampiny.

Tamin'ny Alakamisy 18 Jolay, namoaka ambaratonga efatra vaovao ho laharam-pahamehana ho an'ny vondronay izahay: manakiana, lava, eo ho eo ΠΈ ambany. Nosedraina tamina kluster anatiny tsy nisy fifamoivoizana mpanjifa nandritra ny herinandro teo ho eo izy ireo. Amin'ny alΓ lan'ny default, ny pods tsy misy laharam-pahamehana voafaritra dia azo eo ho eo laharam-pahamehana, ny kilasy dia napetraka ho an'ny Ingesters miaraka amin'ny avo laharam-pahamehana. manakiana natokana ho an'ny fanaraha-maso (Prometheus, Alertmanager, node-exporter, kube-state-metrics, sns.). Misokatra ny config, ary azonao jerena ny PR eto.

fahasimbana

Ny zoma 19 jolay, ny iray amin'ireo injeniera dia nanangana kluster Cortex natokana ho an'ny mpanjifa lehibe iray. Ny config ho an'ity cluster ity dia tsy nahitana laharam-pahamehana pod vaovao, noho izany dia nomena laharam-pahamehana ny pod vaovao rehetra - eo ho eo.

Ny kluster Kubernetes dia tsy nanana loharano ampy ho an'ny kluster Cortex vaovao, ary tsy nohavaozina ny kluster Cortex famokarana efa misy (navela tsy nisy ny Ingesters. avo laharam-pahamehana). Satria ny Ingesters amin'ny cluster vaovao amin'ny alΓ lan'ny default dia nanana eo ho eo laharam-pahamehana, ary ny pods efa misy amin'ny famokarana dia niasa tsy nisy laharam-pahamehana mihitsy, ny Ingesters amin'ny cluster vaovao dia nisolo ny Ingesters avy amin'ny kluster famokarana Cortex efa misy.

Ny ReplicaSet ho an'ny Ingester voaroaka ao amin'ny kluster famokarana dia nahita ny pod voaroaka ary namorona iray vaovao mba hitazonana ny isan'ny dika mitovy. Ny pod vaovao dia nomena ny default eo ho eo laharam-pahamehana, ary ny Ingester "antitra" iray hafa amin'ny famokarana very ny loharanony. Ny vokany dia fizotry ny avalanche, izay nitarika ny fifindran'ny pods rehetra avy amin'ny Ingester ho an'ny kluster famokarana Cortex.

Mitahiry angon-drakitra mandritra ny 12 ora teo aloha ny Ingesters. Izany dia ahafahantsika manindry azy ireo amin'ny fomba mahomby kokoa alohan'ny hanoratana azy ireo amin'ny fitahirizana maharitra. Mba hahatratrarana izany, Cortex shards angon-drakitra manerana ny andian-dahatsoratra amin'ny alalan'ny Distributed Hash Table (DHT) ary mamerina ny andiany tsirairay amin'ny telo Ingesters amin'ny fampiasana ny tsy fitoviana amin'ny kΓ΄lejy Dynamo. Cortex dia tsy manoratra angona amin'ny Ingesters izay kilemaina. Noho izany, rehefa maro ny Ingesters miala amin'ny DHT, Cortex dia tsy afaka manome replication ampy ny fidirana, ary nianjera izy ireo.

Fikarohana sy fanarenana

Fampandrenesana Prometheus vaovao mifototra amin'ny "teti-bola diso" (mifototra amin'ny teti-bola diso - ny antsipiriany dia hiseho amin'ny lahatsoratra ho avy) nanomboka naneno ny fanairana 4 minitra taorian'ny nanombohan'ny fanakatonana. Tao anatin'ny dimy minitra teo ho eo, dia nanao diagnostika izahay ary nampitombo ny kluster Kubernetes fototra mba hampiantranoana ireo vondron'orinasa vaovao sy efa misy.

Taorian'ny dimy minitra hafa, dia nahomby ny Ingesters taloha nanoratra ny angon-dry zareo, nanomboka ny vaovao, ary nanjary azo jerena indray ny cluster Cortex.

Nandany 10 minitra hafa nanamarika sy nanitsy ny lesoka ivelan'ny fitadidiana (OOM) avy amin'ny authentication reverse proxy hita eo anoloan'ny Cortex. Ny lesoka OOM dia vokatry ny fitomboana avo folo heny amin'ny QPS (mino izahay noho ny fangatahana mahery vaika avy amin'ny mpizara Prometheus an'ny mpanjifa).

vokatry

26 minitra ny totalin'ny fiatoana. Tsy nisy angona very. Ny Ingesters dia nahomby tamin'ny fampidirana ny angona rehetra ao anaty fitadidiana ao anaty fitahirizana maharitra. Nandritra ny fanakatonana dia voafafa ny mpizara Prometheus mpanjifa (lavitra) fandraketana mampiasa API vaovao remote_write mifototra amin'ny WAL (nosoratan'i Callum Styan avy amin'ny Grafana Labs) ary namerina ireo asa soratra tsy nahomby taorian'ny fianjerana.

Ahoana no nahatonga ny laharam-pahamehana ao amin'ny Kubernetes tamin'ny fotoana fiatoana tao amin'ny Grafana Labs
Famoronana asa fanoratana cluster

hitany

Zava-dehibe ny mandray lesona avy amin’io tranga io ary mandray ny fepetra ilaina hisorohana ny fiverenan’izany.

Rehefa dinihina tokoa, dia tsy tokony ho nametraka ny default eo ho eo laharam-pahamehana mandra-pahazoan'ny Ingesters rehetra ao amin'ny famokarana lava laharam-pahamehana. Ankoatra izany, dia nilaina ny nikarakara azy ireo mialoha avo laharam-pahamehana. Efa raikitra izao ny zava-drehetra. Manantena izahay fa ny traikefanay dia hanampy ireo fikambanana hafa handinika ny fampiasana ny laharam-pahamehana pod ao amin'ny Kubernetes.

Hanampy ambaratongam-panaraha-maso fanampiny amin'ny fametrahana zavatra fanampiny izay maneran-tany amin'ny cluster ny fanamafisam-peo. Manomboka izao dia hojerena ny fiovana toy izany bΠΎolona maro kokoa. Fanampin'izany, noheverina ho kely loatra ho an'ny antontan-taratasin'asa manokana ny fanovana nahatonga ny fianjerana - tao amin'ny olana GitHub ihany no noresahina. Manomboka izao, ny fanovana rehetra toy izany amin'ny configs dia hiaraka amin'ny antontan-taratasy mifanaraka amin'ny tetikasa.

Farany, hanao automatique ny fanovΓ na ny proxy reverse authentication izahay mba hisorohana ny OOM be loatra izay hitanay, ary hamerina hijery ny fanovana default Prometheus mifandraika amin'ny famerenam-bola sy ny scaling mba hisorohana ny olana mitovy amin'izany amin'ny ho avy.

Ny tsy fahombiazana dia nisy vokany tsara ihany koa: nahazo ny loharano ilaina, Cortex dia niverina ho azy tsy misy fitsabahana fanampiny. Nahazo traikefa sarobidy koa izahay niara-niasa taminy Grafana Loki - rafitra fanangonam-bokatra vaovao - izay nanampy mba hiantohana fa ny Ingesters rehetra dia nihetsika araka ny tokony ho izy nandritra sy taorian'ny tsy fahombiazana.

PS avy amin'ny mpandika teny

Vakio ihany koa ao amin'ny bilaoginay:

Source: www.habr.com

Add a comment