Bawo ni awọn ayo podu ni Kubernetes ṣe fa idaduro akoko ni Grafana Labs

Akiyesi. itumọ.: A ṣe afihan si awọn alaye imọ-ẹrọ akiyesi rẹ nipa awọn idi fun igba diẹ sẹhin ni iṣẹ awọsanma ti o tọju nipasẹ awọn ẹlẹda ti Grafana. Eyi jẹ apẹẹrẹ Ayebaye ti bii ẹya tuntun ati ti o dabi ẹnipe o wulo pupọ ti a ṣe apẹrẹ lati mu didara awọn amayederun… le fa ipalara ti o ko ba pese fun ọpọlọpọ awọn nuances ti ohun elo rẹ ni awọn otitọ ti iṣelọpọ. O jẹ nla nigbati awọn ohun elo bii eyi ba han ti o gba ọ laaye lati kọ ẹkọ kii ṣe lati awọn aṣiṣe rẹ nikan. Awọn alaye wa ninu itumọ ọrọ yii lati ọdọ igbakeji alaga ọja lati Grafana Labs.

Bawo ni awọn ayo podu ni Kubernetes ṣe fa idaduro akoko ni Grafana Labs

Ni ọjọ Jimọ, Oṣu Keje ọjọ 19, iṣẹ Prometheus ti gbalejo ni Grafana Cloud duro ṣiṣẹ fun isunmọ ọgbọn iṣẹju. Mo gafara fun gbogbo awọn onibara fowo nipasẹ awọn outage. Iṣẹ wa ni lati pese awọn irinṣẹ ibojuwo ti o nilo, ati pe a loye pe ko ni wọn wa le jẹ ki igbesi aye rẹ nira sii. A gba iṣẹlẹ yii ni pataki pupọ. Akọsilẹ yii ṣalaye ohun ti o ṣẹlẹ, bawo ni a ṣe dahun, ati ohun ti a nṣe lati rii daju pe ko ṣẹlẹ lẹẹkansi.

prehistory

Grafana Cloud Hosted Prometheus iṣẹ da lori kotesi - Iṣẹ akanṣe CNCF lati ṣẹda iwọn ti nâa, ti o wa ga julọ, iṣẹ-iṣẹ Prometheus agbatọju pupọ. Awọn faaji Cortex ni akojọpọ awọn iṣẹ microservices kọọkan, ọkọọkan eyiti o ṣe iṣẹ tirẹ: ẹda, ibi ipamọ, awọn ibeere, ati bẹbẹ lọ. Cortex wa labẹ idagbasoke ti nṣiṣe lọwọ ati pe o nfi awọn ẹya tuntun kun nigbagbogbo ati ilọsiwaju iṣẹ. Nigbagbogbo a nfi awọn idasilẹ Cortex tuntun ranṣẹ si awọn iṣupọ ki awọn alabara le lo anfani awọn ẹya wọnyi - ni oore-ọfẹ, Cortex le ṣe imudojuiwọn laisi akoko idaduro.

Fun awọn imudojuiwọn ailopin, iṣẹ Ingester Cortex nilo afikun ẹda Ingester lakoko ilana imudojuiwọn. (Akiyesi. itumọ.: Ingester - ipilẹ paati ti kotesi. Iṣẹ rẹ ni lati gba ṣiṣan ti awọn ayẹwo nigbagbogbo, ṣe akojọpọ wọn sinu awọn chunks Prometheus ki o tọju wọn sinu aaye data bi DynamoDB, BigTable tabi Cassandra.) Eyi ngbanilaaye awọn Ingesters atijọ lati dari data lọwọlọwọ si awọn Ingesters tuntun. O tọ lati ṣe akiyesi pe awọn Ingesters jẹ ibeere ibeere. Fun wọn lati ṣiṣẹ, o nilo lati ni awọn ohun kohun 4 ati 15 GB ti iranti fun podu, ie. 25% ti agbara ṣiṣe ati iranti ti ẹrọ ipilẹ ni ọran ti awọn iṣupọ Kubernetes wa. Ni gbogbogbo, a nigbagbogbo ni ọpọlọpọ awọn orisun ajeku diẹ sii ninu iṣupọ ju awọn ohun kohun 4 ati 15 GB ti iranti, nitorinaa a le ni rọọrun yi awọn ingesters afikun wọnyi pọ si lakoko awọn iṣagbega.

Sibẹsibẹ, o nigbagbogbo ṣẹlẹ pe lakoko iṣẹ deede ko si ọkan ninu awọn ẹrọ ti o ni 25% ti awọn orisun ti ko lo. Bẹẹni, a ko paapaa tiraka: Sipiyu ati iranti yoo wulo nigbagbogbo fun awọn ilana miiran. Lati yanju iṣoro yii, a pinnu lati lo Kubernetes podu ayo. Ero naa ni lati fun awọn Ingesters ni pataki ti o ga julọ ju awọn iṣẹ microservice miiran (laini ipinlẹ). Nigba ti a ba nilo lati ṣiṣẹ afikun (N+1) Ingester, a yoo paarọ awọn miiran, awọn podu kekere fun igba diẹ. Awọn adarọ-ese wọnyi ni a gbe lọ si awọn orisun ọfẹ lori awọn ẹrọ miiran, nlọ “iho” ti o tobi to lati ṣiṣẹ Ingester afikun.

Ni Ojobo, Oṣu Keje ọjọ 18, a yiyi awọn ipele pataki mẹrin mẹrin jade si awọn iṣupọ wa: lominu ni, ga, aropin и kukuru. Wọn ṣe idanwo lori iṣupọ inu laisi ijabọ alabara fun bii ọsẹ kan. Nipa aiyipada, awọn adarọ-ese laisi pataki kan gba aropin ayo , kilasi ti ṣeto fun Ingesters pẹlu giga ayo . Lominu ni ti wa ni ipamọ fun ibojuwo (Prometheus, Alertmanager, node-atporter, kube-state-metrics, bbl). Iṣeto wa ṣii, ati pe o le wo PR naa nibi.

Ijamba

Ni ọjọ Jimọ, Oṣu Keje ọjọ 19, ọkan ninu awọn onimọ-ẹrọ ṣe ifilọlẹ iṣupọ Cortex igbẹhin tuntun fun alabara nla kan. Iṣeto fun iṣupọ yii ko pẹlu awọn pataki podu tuntun, nitorinaa gbogbo awọn adarọ-ese tuntun ni a yàn ni pataki aiyipada - aropin.

iṣupọ Kubernetes ko ni awọn orisun to fun iṣupọ Cortex tuntun, ati pe iṣupọ Cortex iṣelọpọ ti o wa tẹlẹ ko ni imudojuiwọn (A fi awọn Ingesters silẹ laisi ga ayo). Niwon awọn Ingesters ti titun iṣupọ nipa aiyipada ní aropin ni ayo, ati awọn pods ti o wa ni iṣelọpọ ṣiṣẹ laisi ayo rara, Awọn Ingesters ti iṣupọ tuntun rọpo Ingesters lati inu iṣupọ iṣelọpọ Cortex ti o wa.

ReplicaSet fun Ingester ti a yọ kuro ninu iṣupọ iṣelọpọ ṣe awari adarọ-ese ti o jade ati ṣẹda ọkan tuntun lati ṣetọju nọmba ti a sọ fun awọn ẹda. Awọn titun podu ti a sọtọ nipa aiyipada aropin ayo , ati awọn miiran "atijọ" Ingester ni gbóògì nu awọn oniwe-oro. Abajade jẹ owusuwusu ilana, eyiti o yori si iṣipopada gbogbo awọn podu lati Ingester fun awọn iṣupọ iṣelọpọ Cortex.

Awọn ingesters jẹ ipinlẹ ati tọju data fun awọn wakati 12 ti tẹlẹ. Eyi n gba wa laaye lati compress wọn daradara siwaju sii ṣaaju kikọ wọn si ibi ipamọ igba pipẹ. Lati ṣaṣeyọri eyi, data Cortex shards kọja jara ni lilo Tabili Hash Pinpin (DHT) ati ṣe atunwi lẹsẹsẹ kọọkan kọja Ingesters mẹta ni lilo aitasera iye-ara Dynamo. Cortex ko kọ data si Ingesters ti o jẹ alaabo. Nitorinaa, nigbati nọmba nla ti Ingesters lọ kuro ni DHT, Kotesi ko le pese atunṣe to ti awọn titẹ sii, wọn si kọlu.

Wiwa ati Atunse

Awọn iwifunni Prometheus Tuntun ti o da lori “isuna aṣiṣe” (orisun-isuna-aṣiṣe - awọn alaye yoo han ni nkan iwaju) bẹrẹ ohun itaniji ni iṣẹju 4 lẹhin ibẹrẹ ti tiipa. Ni iṣẹju marun to nbọ tabi bẹẹ, a ṣe diẹ ninu awọn iwadii aisan ati ṣe iwọn iṣupọ Kubernetes ti o wa labẹle lati gbalejo mejeeji awọn iṣupọ iṣelọpọ tuntun ati ti o wa tẹlẹ.

Lẹhin iṣẹju marun miiran, awọn Ingesters atijọ ti kọ data wọn ni aṣeyọri, awọn tuntun bẹrẹ, ati awọn iṣupọ Cortex tun wa lẹẹkansi.

Awọn iṣẹju mẹwa 10 miiran ni a lo lati ṣe iwadii ati ṣatunṣe awọn aṣiṣe ti ita-iranti (OOM) lati awọn aṣoju yiyipada ijẹrisi ti o wa ni iwaju Cortex. Awọn aṣiṣe OOM jẹ nitori ilosoke mẹwa mẹwa ni QPS (a gbagbọ nitori awọn ibeere ibinu pupọju lati ọdọ olupin Prometheus ti alabara).

Awọn abajade

Lapapọ akoko idaduro jẹ iṣẹju 26. Ko si data ti sọnu. Ingesters ti ṣaṣeyọri kojọpọ gbogbo data inu-iranti sinu ibi ipamọ igba pipẹ. Lakoko tiipa, awọn olupin Prometheus alabara ti paarẹ (latọna jijin) awọn gbigbasilẹ lilo titun API remote_write da lori WAL (akọwe nipasẹ Callum Styan lati Grafana Labs) ati tun awọn kikọ ti o kuna lẹhin jamba naa.

Bawo ni awọn ayo podu ni Kubernetes ṣe fa idaduro akoko ni Grafana Labs
Iṣupọ iṣelọpọ kikọ awọn iṣẹ ṣiṣe

awari

O ṣe pataki lati kọ ẹkọ lati iṣẹlẹ yii ki o ṣe awọn igbesẹ pataki lati yago fun atunwi rẹ.

Ni ẹhin, a ko yẹ ki o ṣeto aiyipada aropin ayo titi gbogbo Ingesters ni gbóògì ti gba ga ayo kan. Ni afikun, o jẹ dandan lati tọju wọn ni ilosiwaju ga ayo . Ohun gbogbo ti wa titi bayi. A nireti pe iriri wa yoo ṣe iranlọwọ fun awọn ẹgbẹ miiran ti o ronu nipa lilo awọn pataki podu ni Kubernetes.

A yoo ṣafikun ipele iṣakoso afikun lori imuṣiṣẹ ti eyikeyi afikun ohun ti awọn atunto jẹ agbaye si iṣupọ. Lati isisiyi lọ, iru awọn ayipada yoo jẹ ayẹwo bоeniyan diẹ sii. Ni afikun, iyipada ti o fa jamba naa ni a ka pe o kere ju fun iwe iṣẹ akanṣe kan - o jẹ ijiroro nikan ni ọran GitHub kan. Lati isisiyi lọ, gbogbo iru awọn iyipada si awọn atunto yoo wa pẹlu iwe iṣẹ akanṣe ti o yẹ.

Nikẹhin, a yoo ṣe adaṣe iwọntunwọnsi aṣoju yiyipada ijẹrisi lati ṣe idiwọ apọju OOM ti a jẹri, ati pe yoo ṣe atunyẹwo awọn eto aiyipada Prometheus ti o ni ibatan si ipadasẹhin ati iwọn lati yago fun awọn ọran ti o jọra ni ọjọ iwaju.

Ikuna naa tun ni diẹ ninu awọn abajade rere: ti gba awọn orisun to wulo, Cortex gba pada laifọwọyi laisi idasi afikun. A tun ni iriri ti o niyelori ṣiṣẹ pẹlu Grafana Loki - eto akojọpọ log tuntun wa - eyiti o ṣe iranlọwọ rii daju pe gbogbo awọn Ingesters huwa daradara lakoko ati lẹhin ikuna.

PS lati onitumọ

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun