Pehea ka hana ʻana o nā mea nui ma Kubernetes i ka wā hoʻomaha ma Grafana Labs

Nānā. unuhi.: Ke hōʻike aku nei mākou i kou manaʻo i nā kikoʻī ʻenehana e pili ana i nā kumu o ka downtime hou i ka lawelawe ao i mālama ʻia e nā mea hana o Grafana. He hiʻohiʻona maʻamau kēia o ke ʻano o kahi hiʻohiʻona hou a i ʻike ʻia he mea pono loa i hoʻolālā ʻia no ka hoʻomaikaʻi ʻana i ka maikaʻi o ka ʻoihana ... hiki ke hōʻeha inā ʻaʻole ʻoe e hāʻawi i nā nuances he nui o kāna noi i nā ʻoiaʻiʻo o ka hana. He mea maikaʻi ke ʻike ʻia nā mea e like me kēia e ʻae iā ʻoe e aʻo ʻaʻole wale mai kāu mau hewa. Aia nā kikoʻī ma ka unuhi ʻana o kēia kikokikona mai ka hope pelekikena o nā huahana mai Grafana Labs.

Pehea ka hana ʻana o nā mea nui ma Kubernetes i ka wā hoʻomaha ma Grafana Labs

Ma ka Pōʻalima, Iulai 19, ua hoʻopau ka lawelawe ʻo Hosted Prometheus ma Grafana Cloud i ka hana ʻana ma kahi o 30 mau minuke. Ke kala aku nei au i nā mea kūʻai aku i hoʻopilikia ʻia e ka pau ʻana. ʻO kā mākou hana ʻo ka hāʻawi ʻana i nā mea hana nānā āu e pono ai, a maopopo mākou ʻo ka loaʻa ʻole o ia mau mea hiki ke paʻakikī i kou ola. Manaʻo nui mākou i kēia hanana. Hōʻike kēia memo i ka mea i hana ʻia, pehea mākou i pane ai, a me kā mākou hana e hōʻoia ai ʻaʻole ia e hana hou.

prehistory

Hoʻokumu ʻia ka lawelawe ʻo Grafana Cloud Hosted Prometheus ma Cortex - ʻO ka papahana CNCF e hoʻokumu i kahi lawelawe Prometheus hiki ke hoʻonui ʻia, loaʻa loa. ʻO ka hoʻolālā Cortex kahi pūʻulu o nā microservices pākahi, e hana ana kēlā me kēia i kāna hana ponoʻī: replication, storage, queries, etc. Aia ʻo Cortex ma lalo o ka hoʻomohala ikaika a hoʻohui mau i nā hiʻohiʻona hou a hoʻomaikaʻi i ka hana. Hoʻopuka pinepine mākou i nā hoʻokuʻu Cortex hou i nā pūʻulu i hiki i nā mea kūʻai ke hoʻohana pono i kēia mau hiʻohiʻona - ʻoi aku ka maikaʻi, hiki ke hoʻonui ʻia ʻo Cortex me ka ʻole o ka downtime.

No nā hōʻano hou ʻole, pono ka lawelawe ʻo Ingester Cortex i kahi kope Ingester hou i ka wā o ke kaʻina hana. (Nānā. unuhi.: Mea hoʻohana - ke kumu kumu o ka Cortex. ʻO kāna hana ʻo ka hōʻiliʻili i kahi kahawai mau o nā laʻana, hui iā lākou i loko o nā ʻāpana Prometheus a mālama iā lākou i loko o kahi waihona e like me DynamoDB, BigTable a i ʻole Cassandra.) ʻAe kēia i nā Ingesters kahiko e hoʻouna i ka ʻikepili o kēia manawa i nā Ingesters hou. He mea pono e hoʻomaopopo he koi waiwai nā Ingesters. No lākou e hana, pono ʻoe e loaʻa iā ʻoe nā cores 4 a me 15 GB o ka hoʻomanaʻo no kēlā me kēia pod, ʻo ia hoʻi. 25% o ka mana hana a me ka hoʻomanaʻo o ka mīkini kumu i ka hihia o kā mākou mau pūʻulu Kubernetes. Ma keʻano laulā, ʻoi aku ka nui o nā kumuwaiwai i hoʻohana ʻole ʻia ma ka hui ma mua o 4 cores a me 15 GB o ka hoʻomanaʻo, no laila hiki iā mākou ke wili i kēia mau mea hoʻohui hou i ka wā o ka hoʻonui ʻana.

Eia naʻe, hiki pinepine i ka wā o ka hana maʻamau ʻaʻohe o nā mīkini i kēia 25% o nā kumuwaiwai i hoʻohana ʻole ʻia. ʻAe, ʻaʻole mākou e hoʻoikaika: pono mau ka CPU a me ka hoʻomanaʻo no nā kaʻina hana ʻē aʻe. No ka hoʻoponopono i kēia pilikia, ua hoʻoholo mākou e hoʻohana Kubernetes Pod Priorities. ʻO ka manaʻo e hāʻawi iā Ingesters i ka mea nui ma mua o nā microservices (stateless). Ke pono mākou e holo i kahi mea hoʻohui (N+1) hou, hoʻoneʻe mākou i nā pods liʻiliʻi ʻē aʻe. Hoʻololi ʻia kēia mau pods i nā kumuwaiwai manuahi ma nā mīkini ʻē aʻe, e waiho ana i kahi "puka" nui e holo ai i kahi Ingester hou.

Ma ka Pōʻalima, Iulai 18, ua ʻōwili mākou i ʻehā mau pae koʻikoʻi hou i kā mākou hui: waiwai koʻikoʻi, kiʻekiʻe loa, awelika и haʻahaʻa. Ua hoʻāʻo ʻia lākou ma kahi puʻupuʻu kūloko me ka hele ʻole o ka mea kūʻai aku no hoʻokahi pule. Ma ka maʻamau, loaʻa nā pods me ka ʻole o ka manaʻo nui awelika ʻO ka mea nui, ua hoʻonohonoho ʻia ka papa no Ingesters me kiʻekiʻe loa mea nui. koʻikoʻi Ua mālama ʻia no ka nānā ʻana (Prometheus, Alertmanager, node-exporter, kube-state-metrics, etc.). Wehe ʻia kā mākou config, a hiki iā ʻoe ke nānā i ka PR maanei.

Loaʻa

Ma ka Pōʻalima, Iulai 19, ua hoʻokumu kekahi o nā ʻenekini i kahi hui Cortex i hoʻolaʻa hou ʻia no kahi mea kūʻai nui. ʻAʻole i hoʻokomo ʻia ka config no kēia puʻupuʻu i nā mea nui o ka pod hou, no laila ua hāʻawi ʻia nā pods hou āpau i kahi mea nui - awelika.

ʻAʻole lawa nā kumu waiwai o ka pūʻulu Kubernetes no ka pūʻulu Cortex hou, a ʻaʻole i hōʻano hou ʻia ka pūʻulu Cortex i hana ʻia (Ua waiho ʻia nā Ingesters me ka ʻole kiʻekiʻe mea nui). No ka mea, ua loaʻa i nā Ingesters o ka hui hou awelika ʻO ka mea nui, a ua hana nā pods i hana ʻia me ka ʻole o ka mea nui, ua hoʻololi nā Ingesters o ka hui hou i nā Ingesters mai ka hui hana Cortex i loaʻa.

Ua ʻike ʻo ReplicaSet no ka Ingester i hoʻokuke ʻia i ka pūʻulu hana i ka pod i hoʻokuʻu ʻia a hana i kahi mea hou e mālama ai i ka helu o nā kope. Ua hoʻonohonoho ʻia ka pod hou e ka paʻamau awelika ʻO ka mea nui, a ʻo kekahi "kahiko" Ingester i ka hana ua nalowale kāna mau kumuwaiwai. ʻO ka hopena kaʻina ʻauwaha, ka mea i alakaʻi i ka neʻe ʻana o nā pods a pau mai Ingester no nā pūʻulu hana Cortex.

He kūlana kūlana a mālama ʻia nā ʻikepili no nā hola 12 i hala. ʻAe kēia iā mākou e hoʻopaʻa pono iā lākou ma mua o ke kākau ʻana iā lākou i kahi mālama lōʻihi. No ka hoʻokō ʻana i kēia, Cortex shards ʻikepili ma waena o ka moʻo me ka Distributed Hash Table (DHT) a hoʻopiʻi i kēlā me kēia moʻo ma waena o ʻekolu Ingesters me ka hoʻohana ʻana i ke ʻano korum ʻano Dynamo. ʻAʻole kākau ʻo Cortex i ka ʻikepili i nā Ingesters i pio. No laila, ke haʻalele ka nui o nā Ingesters i ka DHT, ʻaʻole hiki i Cortex ke hāʻawi i ka hoʻopiʻi kūpono o nā mea i hoʻokomo ʻia, a hāʻule lākou.

ʻIke a hoʻoponopono

Nā hoʻolaha hou Prometheus e pili ana i "ke kālā hewa" (pili kālā-hewa - e ʻike ʻia nā kikoʻī ma kahi ʻatikala e hiki mai ana) hoʻomaka ke kani ʻana i ka alarm 4 mau minuke ma hope o ka hoʻomaka ʻana o ka pani ʻana. I loko o nā minuke ʻelima e hiki mai ana, ua holo mākou i kekahi mau diagnostics a hoʻonui i ka pūʻulu Kubernetes i lalo no ka hoʻokipa ʻana i nā pūʻulu hana hou a i kēia manawa.

Ma hope o ʻelima mau minuke, ua kākau maikaʻi nā Ingesters kahiko i kā lākou ʻikepili, hoʻomaka nā mea hou, a loaʻa hou nā hui Cortex.

Ua hoʻohana ʻia he 10 mau minuke no ka hoʻomaʻamaʻa ʻana a me ka hoʻoponopono ʻana i nā hewa i waho o ka hoʻomanaʻo (OOM) mai ka hōʻoia ʻana i nā proxies hoʻohuli i mua o Cortex. Ua hoʻokumu ʻia nā hewa OOM ma muli o ka piʻi ʻana he ʻumi o ka QPS (ke manaʻoʻiʻo nei mākou ma muli o nā noi koʻikoʻi mai nā kikowaena Prometheus o ka mea kūʻai aku).

Nā hopena

He 26 mau minuke ka nui o ka manawa hoʻomaha. ʻAʻohe ʻikepili i nalowale. Ua hoʻouka maikaʻi nā Ingesters i nā ʻikepili i loko o ka hoʻomanaʻo i loko o kahi mālama lōʻihi. I ka wā o ka pani ʻana, ua holoi ʻia nā kikowaena Prometheus (mamao) hoʻopaʻa hoʻopaʻa ʻana API hou remote_write ma muli o WAL (i kākau ʻia e Callum Styan mai Grafana Labs) a hana hou i nā kākau ʻole ma hope o ka ulia.

Pehea ka hana ʻana o nā mea nui ma Kubernetes i ka wā hoʻomaha ma Grafana Labs
Nā hana kākau pūʻulu hana

haʻina

He mea nui e aʻo mai kēia hanana a hana i nā hana kūpono e pale aku ai i kona hoʻi hou ʻana.

I ka nānā ʻana, ʻaʻole pono mākou i hoʻonohonoho i ka paʻamau awelika ka mea nui a hiki i ka loaʻa ʻana o nā Ingesters a pau i ka hana kiʻekiʻe loa he mea nui. Eia kekahi, pono e mālama mua iā lākou kiʻekiʻe mea nui. Ua paʻa nā mea a pau i kēia manawa. Manaʻo mākou e kōkua kā mākou ʻike i nā hui ʻē aʻe e noʻonoʻo ana i ka hoʻohana ʻana i nā mea nui ma Kubernetes.

E hoʻohui mākou i kahi pae hoʻomalu hou aʻe ma luna o ka waiho ʻana o nā mea hou aʻe nona ka hoʻonohonoho ʻana i ka honua i ka hui. Mai kēia manawa, e loiloi ʻia ia mau loli bоhou kanaka. Eia hou, ʻo ka hoʻololi ʻana i hoʻokumu ʻia ai ka ulia i manaʻo ʻia he mea liʻiliʻi loa no kahi palapala papahana ʻokoʻa - ua kūkākūkā wale ʻia ma kahi pilikia GitHub. Mai kēia manawa, e hoʻopili ʻia kēlā mau hoʻololi āpau i nā configs me nā palapala papahana kūpono.

ʻO ka mea hope loa, e hoʻololi mākou i ka hoʻololi ʻana o ka hōʻoia hōʻoia reverse proxy e pale i ka overload OOM a mākou i ʻike ai, a e nānā i nā hoʻonohonoho paʻamau Prometheus e pili ana i ka hāʻule a me ka scaling e pale i nā pilikia like i ka wā e hiki mai ana.

Ua loaʻa kekahi mau hopena maikaʻi i ka hāʻule ʻana: i ka loaʻa ʻana o nā kumuwaiwai e pono ai, ua hoʻōla koke ʻo Cortex me ka ʻole o ka hana hou. Loaʻa iā mākou ka ʻike waiwai e hana pū me Grafana Loki - kā mākou ʻōnaehana hōʻuluʻulu lāʻau hou - i kōkua i ka mālama pono ʻana o nā Ingesters āpau i ka wā a ma hope o ka hāʻule ʻana.

PS mai ka unuhi

E heluhelu pū ma kā mākou blog:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka