Kedu ka isi ihe dị na Kubernetes si kpatara ọdịda na Grafana Labs

Rịba ama. ntụgharị asụsụ.: Anyị na-ewetara gị nlebara anya nkọwa ọrụaka gbasara ihe kpatara ọdịda na-adịbeghị anya na ọrụ igwe ojii nke ndị okike nke Grafana na-elekọta. Nke a bụ a kpochapụwo ihe atụ nke otú a ọhụrụ na yiri nnọọ uru atụmatụ e mere ka mma àgwà nke akụrụngwa ... nwere ike imerụ ahụ ma ọ bụrụ na ị na-adịghị enye maka ọtụtụ nuances nke ngwa ya na eziokwu nke mmepụta. Ọ dị mma mgbe ihe ndị dị otú a pụtara na-enye gị ohere ịmụta ọ bụghị naanị site na mmejọ gị. Nkọwa dị na ntụgharị ederede a sitere n'aka onye isi oche ngwaahịa sitere na Grafana Labs.

Kedu ka isi ihe dị na Kubernetes si kpatara ọdịda na Grafana Labs

Na Fraịde, Julaị 19, ọrụ Prometheus Bochum na Grafana Cloud kwụsịrị ịrụ ọrụ ihe dịka nkeji iri atọ. A na m arịọ ndị ahịa niile mgbaghara ahụ metụtara. Ọrụ anyị bụ ịnye ngwaọrụ nleba anya nke ịchọrọ, anyị ghọtara na enweghị ha nwere ike ime ka ndụ gị sie ike karị. Anyị ji ihe omume a kpọrọ ihe nke ukwuu. Ihe ndetu a na-akọwa ihe merenụ, otu anyị siri zaghachi, na ihe anyị na-eme ka ọ ghara ime ọzọ.

prehistory

Grafana Cloud Hosted Prometheus ọrụ dabere na cortex - CNCF oru ngo imepụta a kehoraizin scalable, ukwuu dị, multi-tenant ọrụ Prometheus. Ihe owuwu Cortex nwere usoro nke microservices nke ọ bụla, nke ọ bụla na-arụ ọrụ nke ya: mmegharị, nchekwa, ajụjụ, wdg. Cortex nọ n'okpuru mmepe na-arụ ọrụ ma na-agbakwunye atụmatụ ọhụrụ mgbe niile ma na-emeziwanye arụmọrụ. Anyị na-ebuga mgbe niile mwepụta Cortex ọhụrụ na ụyọkọ ka ndị ahịa nwee ike iji njirimara ndị a mee ihe - ọ dabara nke ọma, enwere ike imelite Cortex na-enweghị oge ọdịda.

Maka mmelite enweghị nkebi, ọrụ Ingester Cortex chọrọ ka oyiri Ingester agbakwunyere n'oge usoro mmelite. (Rịba ama. ntụgharị asụsụ.: Ingester - isi akụrụngwa nke Cortex. Ọrụ ya bụ ịnakọta ọtụtụ ihe nlele mgbe niile, chịkọta ha na chunks Prometheus ma chekwaa ha na nchekwa data dị ka DynamoDB, BigTable ma ọ bụ Cassandra.) Nke a na-enye ndị Ingesters ochie ohere ibuga data dị ugbu a na ndị Ingesters ọhụrụ. Ọ dị mma ịmara na Ingesters na-achọ akụrụngwa. Ka ha na-arụ ọrụ, ị ga-enwe 4 cores na 15 GB nke ebe nchekwa kwa pod, i.e. 25% nke ike nhazi na ebe nchekwa nke igwe isi n'ihe gbasara ụyọkọ Kubernetes anyị. N'ozuzu, anyị na-enwekarị ọtụtụ ihe ndị a na-ejighị n'aka na ụyọkọ karịa 4 cores na 15 GB nke ebe nchekwa, n'ihi ya, anyị nwere ike ịgbatị ngwa ngwa ndị a ọzọ ingesters n'oge nkwalite.

Otú ọ dị, ọ na-emekarị na n'oge ọrụ nkịtị ọ dịghị nke igwe nwere 25% nke akụrụngwa a na-ejighị ya. Ee, anyị anaghị agba mbọ: CPU na ebe nchekwa ga-aba uru mgbe niile maka usoro ndị ọzọ. Iji dozie nsogbu a, anyị kpebiri iji Kubernetes Pod ụzọ. Echiche a bụ inye ndị Ingesters mkpa dị elu karịa ọrụ ndị ọzọ (enweghị obodo). Mgbe anyị chọrọ ịgba ọsọ ọzọ (N+1) Ingester, anyị na-ebupụ obere pọd ndị ọzọ nwa oge. A na-ebufe pọd ndị a na akụrụngwa n'efu na igwe ndị ọzọ, na-ahapụ nnukwu "oghere" zuru ezu iji mee Ingester ọzọ.

Na Tọzdee, Julaị 18, anyị wepụrụ ọkwa anọ dị mkpa na ụyọkọ anyị: nkatọ, elu, ọ dị mma и ala. A nwalere ha na ụyọkọ dị n'ime na-enweghị okporo ụzọ ndị ahịa ihe dị ka otu izu. Site na ndabara, enwetara pọd na-enweghị mkpa akọwapụtara ọ dị mma Ihe kacha mkpa, edobere klas maka Ingesters nwere elu mkpa. Dị oke egwu edobere maka nlekota (Prometheus, Alertmanager, node-exporter, kube-state-metrics, wdg). Nhazi anyị mepere emepe, ị nwere ike ịlele PR ebe a.

Okuku

Na Fraịde, Julaị 19, otu n'ime ndị injinia weputara ụyọkọ Cortex raara onwe ya nye maka nnukwu onye ahịa. Nhazi nke ụyọkọ a agụnyeghị ihe ndị ọhụrụ ga-ebute ụzọ, ya mere e kenyere pọd ọhụrụ ọ bụla ihe kacha mkpa - ọ dị mma.

Ụyọkọ Kubernetes enweghị ego zuru oke maka ụyọkọ Cortex ọhụrụ, na emeliteghị ụyọkọ Cortex mmepụta dị ugbu a (ahapụrụ Ingesters na-enweghị. elu mkpa). Ebe ọ bụ na ndị Ingesters nke ụyọkọ ọhụrụ na ndabara nwere ọ dị mma mkpa, na pọd ndị dị na mmepụta na-arụ ọrụ na-enweghị mkpa ọ bụla, Ingesters nke ụyọkọ ọhụrụ ahụ nọchiri Ingesters site na ụyọkọ mmepụta Cortex dị ugbu a.

ReplicaSet maka Ingester a chụpụrụ na ụyọkọ mmepụta achọpụtara pọd a chụpụrụ wee mepụta nke ọhụrụ iji dokwaa ọnụ ọgụgụ nke mbipụta a kapịrị ọnụ. E kenyere pọd ọhụrụ ahụ na ndabara ọ dị mma mkpa, na onye ọzọ "ochie" Ingester na mmepụta tụfuru ihe onwunwe ya. Ihe si na ya pụta bụ usoro oke mmiri ozuzo, nke butere nchụpụ nke pọd niile sitere na Ingester maka ụyọkọ mmepụta Cortex.

Ingesters bụ steeti ma chekwaa data maka awa 12 gara aga. Nke a na-enye anyị ohere ịpịkọta ha nke ọma tupu ha edee ha na nchekwa ogologo oge. Iji nweta nke a, Cortex shards data gafee usoro na-eji a Distributed Hash Tebụl (DHT) ma na-emegharị usoro ọ bụla n'ofe atọ Ingesters na-eji nkwụsi ike nke ụdị Dynamo. Cortex anaghị edegara ndị Ingesters nwere nkwarụ data. Ya mere, mgbe ọnụ ọgụgụ buru ibu nke Ingesters na-ahapụ DHT, Cortex enweghị ike ịnye nsụgharị zuru ezu nke ndenye, ha na-adaba.

Nchọpụta na Ndozi

Ọhụrụ ọkwa Prometheus dabere na "mmefu ego mperi" (dabere na mmefu ego njehie - nkọwa ga-apụta n'ime akụkọ n'ọdịnihu) malitere ịkpọ mkpu 4 nkeji mgbe mmalite nke mmechi. N'ime nkeji ise ma ọ bụ karịa, anyị mere nyocha ụfọdụ wee bulie ụyọkọ Kubernetes dị n'okpuru iji kwado ma ụyọkọ mmepụta ọhụrụ na ndị dị adị.

Mgbe nkeji ise ọzọ gasịrị, ndị Ingesters ochie depụtara data ha nke ọma, ndị ọhụrụ malitere, na ụyọkọ Cortex dị ọzọ.

Eji nkeji 10 ọzọ chọpụta ma mezie njehie na-enweghị ebe nchekwa (OOM) site na proxies ntụgharị nyocha dị n'ihu Cortex. Ihe kpatara njehie OOM bụ mmụba okpukpu iri na QPS (anyị kwenyere n'ihi arịrịọ ike ike sitere na sava Prometheus nke onye ahịa).

Nsonaazụ

Oge nkwụsịtụ bụ nkeji iri abụọ na isii. Ọ dịghị data efunahụ. Ingesters ebugotela data n'ime ebe nchekwa nke ọma n'ime nchekwa ogologo oge. N'oge mmechi ahụ, ehichapụrụ sava Prometheus ndị ahịa (imetere anya) ndekọ na-eji ọhụrụ API remote_write dabere na WAL (onye dere ya Callum Styan sitere na Grafana Labs) ma kwughachi ihe dara ada na-ede mgbe ihe mberede ahụ gasịrị.

Kedu ka isi ihe dị na Kubernetes si kpatara ọdịda na Grafana Labs
Ọrụ nchịkọta mmepụta ihe

Nchoputa

Ọ dị mkpa ịmụta site na nke a merenụ ma mee ihe ndị dị mkpa iji zere nlọghachi ya.

N'ileghachi anya azụ, anyị ekwesịghị idobe ndabara ọ dị mma mkpa ruo mgbe niile Ingesters na mmepụta natara elu ihe kacha mkpa. Tụkwasị na nke ahụ, ọ dị mkpa ilekọta ha tupu oge eruo elu mkpa. Edozila ihe niile ugbu a. Anyị nwere olile anya na ahụmịhe anyị ga-enyere ndị otu ndị ọzọ aka ịtụle iji ihe kacha mkpa na Kubernetes.

Anyị ga-agbakwunye ọkwa nchịkwa ọzọ maka ntinye nke ihe ọ bụla ọzọ nke nhazi ya zuru ụwa ọnụ na ụyọkọ. Site ugbu a gaa n'ihu, a ga-enyocha mgbanwe ndị dị otú ahụ bоndị ọzọ. N'ịgbakwụnye, mgbanwe ahụ kpatara ihe mberede ahụ ka a na-ewere dị obere maka akwụkwọ ọrụ dị iche - a tụlere ya naanị na mbipụta GitHub. Site ugbu a gaa n'ihu, mgbanwe niile dị na nhazi ga-esonyere ya na akwụkwọ ọrụ kwesịrị ekwesị.

N'ikpeazụ, anyị ga-emezigharị ngbanwe nke proxy nyocha iji gbochie ibufe OOM anyị hụrụ, ma ga-enyocha ntọala ndabara Prometheus metụtara ọdịda na scaling iji gbochie ụdị okwu a n'ọdịnihu.

Ọdịda ahụ nwekwara ụfọdụ nsonaazụ dị mma: ebe ọ natara akụrụngwa dị mkpa, Cortex gbakere na-akpaghị aka na-enweghị enyemaka ọzọ. Anyị nwetakwara ahụmịhe bara uru na anyị na-arụ ọrụ Grafana Loki - usoro nchịkọta log ọhụrụ anyị - nke nyere aka hụ na ndị Ingesters niile na-akpa àgwà nke ọma n'oge na mgbe ọdịda gasịrị.

PS sitere na onye ntụgharị

Gụọkwa na blọọgụ anyị:

isi: www.habr.com

Tinye a comment