Nyochaa ụyọkọ Kubernetes: Nlebanya na Okwu Mmalite nke Prometheus

Tụlee echiche nke nlekota Kubernetes, mata ngwá ọrụ Prometheus, ma kwuo banyere ịdọ aka ná ntị.

Isiokwu nke nlekota bụ oke, ọ pụghị ịgbasa n'otu isiokwu. Ebumnuche nke ederede a bụ inye nkọwapụta nke ngwaọrụ, echiche na ụzọ.

Ihe nke isiokwu bụ a afanyekwa si oghe okwu ihu ọha nke ụlọ akwụkwọ "Slurm". Ọ bụrụ na ịchọrọ ịga akwụkwọ zuru oke - debanye aha maka nkuzi na Nleba anya na ntinye akụrụngwa na Kubernetes.

Nyochaa ụyọkọ Kubernetes: Nlebanya na Okwu Mmalite nke Prometheus

Ihe a na-enyocha na ụyọkọ Kubernetes

Nyochaa ụyọkọ Kubernetes: Nlebanya na Okwu Mmalite nke Prometheus

sava anụ ahụ. Ọ bụrụ na etinyere ụyọkọ Kubernetes na sava ya, ịkwesịrị inyocha ahụike ha. Zabbix na-arụ ọrụ a; ọ bụrụ na ị na-arụ ọrụ na ya, mgbe ahụ, ọ dịghị mkpa ka ị jụ, a gaghị enwe esemokwu. Ọ bụ Zabbix na-enyocha ọnọdụ nke sava anyị.

Ka anyị gaa n'ihu na nlekota oru na ọkwa ụyọkọ.

Ngwa njikwa ụgbọ elu: API, Onye nhazi oge na ndị ọzọ. Opekempe, ịkwesịrị ijide n'aka na API nke sava ma ọ bụ wdgd karịrị 0. Etcd nwere ike weghachite ọtụtụ metrics: site na diski nke ọ na-agbagharị, site na ahụike nke ụyọkọ etcd ya, na ndị ọzọ.

Docker pụtara ogologo oge gara aga na onye ọ bụla maara nke ọma nsogbu ya: ọtụtụ akpa na-emepụta freezes na nsogbu ndị ọzọ. Ya mere, Docker n'onwe ya, dị ka usoro, kwesịkwara ịchịkwa, opekata mpe maka nnweta.

dns. Ọ bụrụ na DNS daa na ụyọkọ ahụ, ọrụ nchọpụta niile ga-adapụ mgbe ọ gasịrị, oku sitere na pods gaa na pods ga-akwụsị ịrụ ọrụ. Na omume m, enweghị nsogbu ndị dị otú ahụ, mana nke a apụtaghị na steeti DNS adịghị mkpa ka a nyochaa ya. Arịrịọ latency na ụfọdụ metrik ndị ọzọ enwere ike soro ya na CoreDNS.

Ntinye. Ọ dị mkpa ijikwa ohere nke ingresses (gụnyere Ingress Controller) dị ka ntinye aka na ọrụ ahụ.

A kpochapụrụ ihe ndị bụ isi nke ụyọkọ ahụ - ugbu a, ka anyị gbadaa n'ogo nke abstractions.

Ọ ga-adị ka ngwa na-agba ọsọ na pọd, nke pụtara na ọ dị mkpa ka a na-achịkwa ha, ma n'eziokwu, ha adịghị. Pods bụ ephemeral: taa ha na-agba ọsọ n'otu ihe nkesa, echi na ọzọ; taa enwere 10 n'ime ha, echi 2. Ya mere, ọ dịghị onye na-enyocha pods. N'ime ụlọ ọrụ microservice, ọ dị mkpa ka ịchịkwa nnweta ngwa ahụ n'ozuzu ya. Karịsịa, lelee nnweta njedebe ọrụ: ọ nwere ihe ọ bụla na-arụ ọrụ? Ọ bụrụ na ngwa ahụ dị, mgbe ahụ ihe na-eme n'azụ ya, ole oyiri dị ugbu a - ndị a bụ ajụjụ nke usoro nke abụọ. Ọ dịghị mkpa ileba anya n'otu n'otu.

Na ọkwa ikpeazụ, ịkwesịrị ịchịkwa ọrụ nke ngwa ahụ n'onwe ya, were metrics azụmahịa: ọnụ ọgụgụ nke iwu, omume onye ọrụ, na ihe ndị ọzọ.

Prometheus

Usoro kachasị mma maka nyochaa ụyọkọ bụ Prometheus. Amaghị m ngwá ọrụ ọ bụla nwere ike dakọtara Prometheus n'ihe gbasara ịdị mma na ịdị mfe nke iji. Ọ dị mma maka akụrụngwa na-agbanwe agbanwe, yabụ mgbe ha na-ekwu "nleba anya Kubernetes", ha na-apụtakarị Prometheus.

Enwere nhọrọ ole na ole maka ịmalite Prometheus: iji Helm, ị nwere ike ịwụnye Prometheus ma ọ bụ onye ọrụ Prometheus.

  1. Prometheus oge niile. Ihe niile dị mma na ya, mana ịkwesịrị ịhazi ConfigMap - n'ezie, dee faịlụ nhazi ederede, dị ka anyị mere na mbụ, tupu ụlọ ọrụ microservice.
  2. Onye na-arụ ọrụ Prometheus dị ntakịrị gbasaa, ntakịrị mgbagwoju anya n'ihe gbasara mgbagha dị n'ime, ma ọ dị mfe ịrụ ọrụ na ya: e nwere ihe dị iche iche, abstractions na-agbakwunyere na ụyọkọ, n'ihi ya, ha na-adaba adaba na njikwa na ịhazi.

Iji ghọta ngwaahịa ahụ, ana m akwado ịwụnye Prometheus oge niile na mbụ. Ị ga-ahazi ihe niile site na nhazi ahụ, mana nke a ga-aba uru: ị ga-achọpụta ihe bụ ihe na otu esi ahazi ya. Na Prometheus Operator, ị na-ebili ozugbo na abstraction dị elu, n'agbanyeghị na ị nwekwara ike banye n'ime omimi ma ọ bụrụ na ịchọrọ.

Prometheus jikọtara ya na Kubernetes nke ọma: ọ nwere ike ịnweta ma soro API Server na-emekọrịta ihe.

Prometheus na-ewu ewu, nke mere na ọtụtụ ngwa na asụsụ mmemme na-akwado ya. Achọrọ nkwado, ebe ọ bụ na Prometheus nwere usoro metrics nke ya, yana ịnyefe ya, ịchọrọ ma ọ bụ ọbá akwụkwọ n'ime ngwa ahụ ma ọ bụ onye na-ebupụ ihe dị njikere. Ma e nwere nnọọ ole na ole dị otú ahụ na-ebupụ. Dịka ọmụmaatụ, enwere PostgreSQL Exporter: ọ na-ewe data sitere na PostgreSQL wee gbanwee ya na usoro Prometheus ka Prometheus nwee ike ịrụ ọrụ na ya.

Prometheus architecture

Nyochaa ụyọkọ Kubernetes: Nlebanya na Okwu Mmalite nke Prometheus

Ihe nkesa Prometheus bụ azụ azụ, ụbụrụ Prometheus. A na-echekwa ma hazie metrics ebe a.

A na-echekwa metrics na nchekwa data usoro oge (TSDB). TSDB abụghị nchekwa data dị iche, kama ọ bụ ngwugwu dị n'asụsụ Go nke etinyere na Prometheus. N'ikwu okwu, ihe niile dị n'otu ọnụọgụ abụọ.

Echekwala data na TSDB ogologo oge

Akụrụngwa Prometheus adabaghị maka nchekwa ogologo oge nke metrik. Oge njide ndabara bụ ụbọchị iri na ise. Ị nwere ike gafere oke a, mana buru n'uche: ka ị na-echekwa data na TSDB na ogologo oge ị na-eme ya, ka ọ ga-erikwu ihe onwunwe. A na-ewere ịchekwa data akụkọ ihe mere eme na Prometheus dị ka omume ọjọọ.

Ọ bụrụ na ị nwere nnukwu okporo ụzọ, ọnụ ọgụgụ nke metrics bụ narị puku kwuru puku kwa nkeji, mgbe ahụ ọ ka mma ịkwụsị nchekwa ha site na ohere diski ma ọ bụ site na oge. Ọtụtụ mgbe, a na-echekwa "data dị ọkụ" na TSDB, metrik n'ime naanị awa ole na ole. Maka nchekwa ogologo oge, a na-eji nchekwa mpụga na ọdụ data ndị ahụ dabara adaba maka nke a, dịka ọmụmaatụ, InfluxDB, ClickHouse, na ndị ọzọ. Ahụrụ m nyocha ndị ọzọ dị mma gbasara ClickHouse.

Prometheus Server na-arụ ọrụ na ihe nlereanya Dọọ: ọ na-aga maka metrics na njedebe ndị ahụ anyị nyere ya. Ha kwuru, sị: "Gaa na API Server", ọ na-aga ebe ahụ kwa n-th ọnụọgụ nke sekọnd wee were metrics.

Maka ihe ndị nwere obere ndụ (ọrụ ma ọ bụ cron) nwere ike ịpụta n'etiti oge nchacha, enwere akụrụngwa Pushgateway. A na-agbanye metrics sitere na ihe ndị dị mkpirikpi n'ime ya: ọrụ ahụ ebiliwo, mee ihe omume, ziga metrics na Pushgateway ma mechaa. Mgbe obere oge gachara, Prometheus ga-agbadata n'ụzọ nke ya wee bulie metrics ndị a site na Pushgateway.

Iji hazie ọkwa na Prometheus enwere akụkụ dị iche - Onye njikwa ọkwa. Na iwu alerting. Dịka ọmụmaatụ, ịkwesịrị ịmepụta njikere ma ọ bụrụ na API nkesa bụ 0. Mgbe ihe omume ahụ na-agba ọkụ, a na-enyefe njikere ahụ na njikwa njikere maka izipu ọzọ. Onye njikwa njikere nwere ntọala ntụgharị na-agbanwe agbanwe: enwere ike iziga otu ọkwa na nkata telegram nke ndị admins, ọzọ na nkata ndị mmepe, yana nke atọ na nkata ndị ọrụ akụrụngwa. Enwere ike izipu ọkwa na Slack, Telegram, email, na ọwa ndị ọzọ.

N'ikpeazụ, m ga-agwa gị gbasara njirimara egbu egbu Prometheus - chọpụtara. Mgbe gị na Prometheus na-arụ ọrụ, ọ dịghị mkpa ka ị kọwaa adreesị ụfọdụ nke ihe maka nlekota, ọ bụ iji dozie ụdị ha. Ya bụ, ọ dịghị mkpa ka ị dee "ebe a bụ adreesị IP, ebe a bụ ọdụ ụgbọ mmiri - nyochaa", kama, i kwesịrị ikpebi ihe ụkpụrụ ịchọta ihe ndị a.lekwasịrị anya - mgbaru ọsọ). Prometheus n'onwe ya, dabere na ihe ndị na-arụ ọrụ ugbu a, na-adọta ihe ndị dị mkpa ma tinye ha na nlekota oru.

Usoro a dabara nke ọma na usoro Kubernetes, ebe ihe niile na-ese n'elu: taa enwere sava 10, echi 3. Ka ha ghara ịkọwa adreesị IP nke ihe nkesa ahụ oge ọ bụla, ha dere otu ugboro otu esi achọta ya - na Discovering ga-eme ya. .

A na-akpọ asụsụ Prometheus PromQL. Iji asụsụ a, ị nwere ike nweta ụkpụrụ nke metrik akọwapụtara wee tụgharịa ha, wuo mgbako nyocha dabere na ha.

https://prometheus.io/docs/prometheus/latest/querying/basics/

Простой запрос

    container_memory_usage_bytes

Математические операции

    container_memory_usage_bytes / 1024 / 1024

Встроенные функции

    sum(container_memory_usage_bytes) / 1024 / 1024

Уточнение запроса

    100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100)

Ihe ntanetị weebụ Prometheus

Prometheus nwere interface weebụ nke ya, nke pere mpe. Kwesịrị ekwesị maka nbipu ma ọ bụ ngosi.

Nyochaa ụyọkọ Kubernetes: Nlebanya na Okwu Mmalite nke Prometheus

N'ahịrị nkwupụta, ị nwere ike dee ajụjụ n'asụsụ PromQL.

Ihe ngosi ngosi nwere iwu ịdọ aka na ntị, ma ha nwere ọkwa atọ:

  1. adịghị arụ ọrụ - ọ bụrụ na njikere adịghị arụ ọrụ n'oge a, ya bụ, ihe niile dị mma na ya, ma ọ naghị arụ ọrụ;
  2. na-echere - nke a bụ ma ọ bụrụ na njikere na-arụ ọrụ, mana izipu agafebeghị. A na-ahazi igbu oge iji kwụọ ụgwọ maka ihichapụ netwọkụ: ọ bụrụ na ọrụ a kapịrị ọnụ ebiliwo n'ime nkeji, mgbe ahụ, a gaghị agbanye mkpu ahụ;
  3. igba egbe bụ ọkwa nke atọ mgbe njikere na-enwu wee zipụ ozi.

N'ime ọnọdụ ọnọdụ ị ga-ahụ ohere ịnweta ozi gbasara ihe Prometheus bụ. Enwekwara mgbanwe na ebumnuche (ebumnuche), nke anyị kwuru banyere ya n'elu.

Nyochaa ụyọkọ Kubernetes: Nlebanya na Okwu Mmalite nke Prometheus

Maka nkọwa zuru ezu nke interface Prometheus, lee na nkuzi Slurm maka nlekota otu ụyọkọ Kubernetes.

Mmekọrịta na Grafana

N'ime ebe nrụọrụ weebụ Prometheus, ị gaghị ahụ eserese mara mma na nke nwere ike ịghọta site na nke ị nwere ike nweta nkwubi okwu banyere ọnọdụ nke ụyọkọ ahụ. Iji wuo ha, Prometheus jikọtara ya na Grafana. Anyị na-enweta dashboard dị otú ahụ.

Nyochaa ụyọkọ Kubernetes: Nlebanya na Okwu Mmalite nke Prometheus

Ịtọlite ​​​​mmekọrịta Prometheus na Grafana adịghị esi ike ma ọlị, ị nwere ike ịchọta ntụziaka na akwụkwọ: GRAFANA nkwado maka PROMETHEUSỌfọn, m ga-ejedebe na nke a.

N'isiokwu ndị na-esonụ, anyị ga-aga n'ihu na isiokwu nke nlekota: anyị ga-ekwu maka ịnakọta na nyochaa ndekọ site na iji Grafana Loki na ngwaọrụ ndị ọzọ.

Onye edemede: Marcel Ibraev, onye nchịkwa Kubernetes kwadoro, onye injinia na-arụ ọrụ na ụlọ ọrụ ahụ Southbridge, Ọkà okwu na N'ezie onye mmepụta Slurm.

isi: www.habr.com

Tinye a comment