Чӣ гуна афзалиятҳои подкӯҳӣ дар Кубернетес боиси бекористии Grafana Labs шуданд

Шарҳ. тарҷума.: Мо ба таваҷҷуҳи шумо тафсилоти техникиро дар бораи сабабҳои бекористии ба наздикӣ дар хидмати абрӣ, ки аз ҷониби созандагони Grafana нигоҳ дошта мешаванд, пешниҳод менамоем. Ин як мисоли классикии он аст, ки чи тавр хусусияти нав ва ба назар бениҳоят муфиде, ки барои беҳтар кардани сифати инфрасохтор пешбинӣ шудааст... агар шумо нозукиҳои сершумори татбиқи онро дар воқеияти истеҳсолот таъмин накунед, метавонад зарар расонад. Ин хеле хуб аст, вақте ки чунин маводҳо пайдо мешаванд, ки ба шумо имкон медиҳанд, ки на танҳо аз хатогиҳои худ омӯзед. Тафсилот дар тарҷумаи ин матн аз ноиби президенти маҳсулот аз Grafana Labs оварда шудааст.

Чӣ гуна афзалиятҳои подкӯҳӣ дар Кубернетес боиси бекористии Grafana Labs шуданд

Рӯзи ҷумъа, 19 июл, хидмати Hosted Prometheus дар Grafana Cloud тақрибан 30 дақиқа аз кор монд. Ман аз ҳамаи муштариёне, ки аз қатъшавӣ зарар дидаанд, бахшиш мепурсам. Вазифаи мо таъмин намудани абзорҳои мониторинги ба шумо лозим аст ва мо мефаҳмем, ки мавҷуд набудани онҳо метавонад ҳаёти шуморо мушкилтар кунад. Мо ин ҳодисаро хеле ҷиддӣ қабул мекунем. Ин ёддошт шарҳ медиҳад, ки чӣ ҳодиса рӯй дод, мо чӣ гуна вокуниш нишон додем ва мо чӣ кор карда истодаем, то дигар такрор нашавад.

prehistory

Хизматрасонии Grafana Cloud Hosted Prometheus дар асоси Кортекс — Лоиҳаи CNCF барои эҷоди хидмати ба таври уфуқӣ миқёспазир, дастрас ва бисёр иҷорагир Prometheus. Архитектураи Cortex аз маҷмӯи микросервисҳои инфиродӣ иборат аст, ки ҳар яки онҳо вазифаи худро иҷро мекунанд: такрорӣ, нигоҳдорӣ, дархостҳо ва ғайра. Cortex дар рушди фаъол қарор дорад ва пайваста хусусиятҳои нав илова мекунад ва иҷрои онро беҳтар мекунад. Мо мунтазам релизҳои нави Cortex-ро дар кластерҳо ҷойгир мекунем, то муштариён аз ин хусусиятҳо истифода баранд - хушбахтона, Cortex-ро бидуни бекоркунӣ навсозӣ кардан мумкин аст.

Барои навсозиҳои бефосила, хидмати Ingester Cortex ҳангоми навсозӣ нусхаи иловагии Ingester-ро талаб мекунад. (Шарҳ. тарҷума.: Ингестер - ҷузъи асосии Cortex. Вазифаи он ҷамъ овардани ҷараёни доимии намунаҳо, гурӯҳбандӣ кардани онҳо ба қисмҳои Prometheus ва нигоҳ доштани онҳо дар пойгоҳи додаҳо ба монанди DynamoDB, BigTable ё Cassandra мебошад.) Ин ба Ingester-ҳои кӯҳна имкон медиҳад, ки маълумоти ҷорӣро ба Ingesters нав интиқол диҳанд. Қобили қайд аст, ки Ingesters захираҳо талаб мекунанд. Барои он ки онҳо кор кунанд, ба шумо лозим аст, ки 4 ядро ​​ва 15 ГБ хотира дар як pod, яъне. 25% қувваи коркард ва хотираи мошини асосӣ дар мисоли кластерҳои Kubernetes мо. Умуман, мо одатан дар кластер нисбат ба 4 ядро ​​ва 15 ГБ хотира захираҳои зиёд истифоданашуда дорем, аз ин рӯ мо метавонем ҳангоми навсозӣ ин воридкунандагони иловагиро ба осонӣ чарх занем.

Аммо аксар вакт руй медихад, ки дар вакти кори муътадил ягон машина ин 25 фоизи захирахои истифоданашударо надорад. Бале, мо ҳатто кӯшиш намекунем: CPU ва хотира ҳамеша барои равандҳои дигар муфид хоҳанд буд. Барои ҳалли ин мушкилот, мо тасмим гирифтем, ки истифода барем Афзалиятҳои Kubernetes Pod. Идея аз он иборат аст, ки ба Ingester нисбат ба дигар хидматҳои хурд (бешаҳрвандӣ) афзалияти баландтар диҳад. Вақте ки ба мо лозим аст, ки як Ingester-и иловагӣ (N+1) -ро иҷро кунем, мо дигар қубурҳои хурдтарро муваққатан иваз мекунем. Ин қуттиҳо ба захираҳои ройгон дар мошинҳои дигар интиқол дода мешаванд ва барои кор кардани Ingester иловагӣ "сӯрохии" кофӣ боқӣ мемонанд.

Рӯзи панҷшанбе, 18 июл, мо барои кластерҳои худ чаҳор сатҳи нави афзалиятнокро ҷорӣ кардем: интиқодӣ, баланд аст, миёна и паст аст. Онҳо дар кластери дохилӣ бидуни трафики муштарӣ тақрибан як ҳафта озмуда шуданд. Бо нобаёнӣ, поддонҳо бидуни афзалияти муайян гирифта мешаванд миёна афзалиятнок, синф барои Ingesters бо муқаррар карда шуд баланд афзалиятнок. Интиқодӣ барои мониторинг маҳфуз буд (Prometheus, Alertmanager, гиреҳ-экспортёр, kube-state-metrics ва ғайра). Танзимоти мо кушода аст ва шумо метавонед PR-ро бубинед дар ин ҷо.

Шабака

Рӯзи ҷумъа, 19 июл, яке аз муҳандисон кластери нави бахшидашудаи Cortex-ро барои муштарии калон оғоз кард. Конфигуратсияи ин кластер афзалиятҳои навро дар бар намегирифт, аз ин рӯ ба ҳама подкастҳои нав афзалияти пешфарз таъин карда шуданд - миёна.

Кластери Kubernetes барои кластери нави Cortex захираҳои кофӣ надошт ва кластери мавҷудаи истеҳсолии Cortex навсозӣ нашудааст (Ингестерҳо бе баланд афзалият). Азбаски Ingesters кластери нав ба таври нобаёнӣ дошт миёна афзалиятнок буд ва қуттиҳои мавҷуда дар истеҳсолот умуман бе афзалият кор мекарданд, Ingesters кластери нав Ingesters -ро аз кластери истеҳсолии мавҷудаи Cortex иваз карданд.

ReplicaSet барои Ingester ихроҷшуда дар кластери истеҳсолӣ падлуи хориҷшударо муайян кард ва барои нигоҳ доштани шумораи муайяни нусхаҳо як нав эҷод кард. Подгоҳи нав бо нобаёнӣ таъин карда шуд миёна афзалият ва боз як Ингестери «кӯҳна» дар истеҳсолот захираҳои худро аз даст дод. Натичаи хамин буд раванди тармафароӣ, ки боиси аз кластерҳои истеҳсолии Ingester барои Cortex кӯчонида шудани ҳама паҳлӯҳо гардид.

Ингестерҳо маълумот доранд ва маълумотро барои 12 соати қаблӣ нигоҳ медоранд. Ин ба мо имкон медиҳад, ки онҳоро пеш аз навиштан ба нигаҳдории дарозмуддат самараноктар фишурем. Барои ноил шудан ба ин, Cortex маълумотро дар байни силсилаҳо бо истифода аз Ҷадвали тақсимшудаи ҳаш (DHT) тақсим мекунад ва ҳар як силсиларо дар се Ingester бо истифода аз мутобиқати кворуми Динамо-сабки такрор мекунад. Cortex ба Ingesters, ки ғайрифаъоланд, маълумот наменависад. Ҳамин тариқ, вақте ки шумораи зиёди Ingesters аз DHT хориҷ мешаванд, Cortex такрори кофии вурудҳоро таъмин карда наметавонад ва онҳо ба садама дучор мешаванд.

Муайян кардан ва ислоҳ кардан

Огоҳиҳои нави Prometheus дар асоси "буҷети хато" (ба хатогиҳои буҷетӣ асос ёфтааст — тафсилот дар маколаи оянда пайдо мешавад) баъди 4 дакикаи саршавии хомушкунй садои бонги хатарро cap кард. Дар тӯли панҷ дақиқаи оянда, мо якчанд ташхисро анҷом додем ва кластери аслии Кубернетесро васеъ кардем, то кластерҳои нав ва мавҷудаи истеҳсолиро ҷойгир кунанд.

Пас аз панҷ дақиқаи дигар, Ingesters кӯҳна маълумоти худро бомуваффақият навиштанд, навҳои нав оғоз ёфтанд ва кластерҳои Cortex дубора дастрас шуданд.

10 дақиқаи дигар барои ташхис ва ислоҳи хатогиҳои аз хотира (OOM) аз проксиҳои баръакси аутентификатсия, ки дар назди Cortex ҷойгиранд, сарф карда шуд. Хатогиҳои OOM дар натиҷаи даҳ маротиба зиёд шудани QPS ба вуҷуд омадаанд (мо боварӣ дорем, ки ба сабаби дархостҳои аз ҳад хашмгин аз серверҳои Prometheus муштарӣ).

Натиҷаҳо

Вакти умумии бекористй 26 дакикаро ташкил дод. Ягон маълумот гум нашудааст. Ingesters бомуваффақият ҳамаи маълумоти дохили хотираро ба нигаҳдории дарозмуддат бор карданд. Ҳангоми қатъ, серверҳои муштарии Prometheus буфершуда тоза карда шуданд (дурдаст) сабтҳо бо истифода аз API нави remote_write дар асоси WAL (муаллиф Каллум Стян аз Grafana Labs) ва навиштаҳои ноком пас аз садама такрор карданд.

Чӣ гуна афзалиятҳои подкӯҳӣ дар Кубернетес боиси бекористии Grafana Labs шуданд
Амалиёти навиштани кластери истеҳсолӣ

натиҷаҳои

Аз ин ходиса ибрат гирифта, барои такрор нашудани он чорахои зарурй дидан лозим аст.

Дар назар, мо набояд пешфарзро муқаррар кунем миёна то он даме, ки ҳамаи Ингестерҳо дар истеҳсолот гирифта шаванд, афзалият доранд баланд аст афзалиятнок. Гайр аз ин, дар хакки онхо пешакй гамхорй кардан лозим буд баланд афзалиятнок. Ҳама чиз ҳоло ислоҳ шудааст. Мо умедворем, ки таҷрибаи мо ба дигар созмонҳо дар мавриди истифодаи афзалиятҳои подкӯҳӣ дар Кубернетес кӯмак хоҳад кард.

Мо сатҳи иловагии назоратро ба ҷобаҷогузории ҳама гуна объектҳои иловагӣ, ки конфигуратсияҳои онҳо дар кластер глобалӣ мебошанд, илова хоҳем кард. Минбаъд ба чунин дигаргунихо бахо дода мешавад бобештар одамон. Илова бар ин, тағироте, ки боиси садама гардид, барои ҳуҷҷати алоҳидаи лоиҳа хеле ночиз ҳисобида шуд - он танҳо дар як GitHub баррасӣ шуд. Минбаъд ҳамаи чунин тағйирот ба конфигуратсияҳо бо ҳуҷҷатҳои дахлдори лоиҳавӣ ҳамроҳ карда мешаванд.

Ниҳоят, мо тағир додани андозаи прокси баръакси аутентификатсияро автоматӣ месозем, то аз изофабори OOM мо шоҳиди он будем ва танзимоти пешфарзии Prometheus-ро, ки бо бозгашт ва миқёссозӣ алоқаманданд, баррасӣ хоҳем кард, то мушкилоти шабеҳ дар оянда пешгирӣ карда шавад.

Нокомӣ инчунин баъзе оқибатҳои мусбӣ дошт: бо гирифтани захираҳои зарурӣ, Cortex бе дахолати иловагӣ ба таври худкор барқарор шуд. Мо инчунин тачрибаи пуркимати кор бо онхо хосил кардем Графана Локи - системаи нави ҷамъоварии гузоришҳои мо, ки ба он кӯмак кард, ки ҳама Ингестерҳо ҳангоми нокомӣ ва пас аз он дуруст рафтор кунанд.

PS аз тарҷумон

Инчунин дар блоги мо хонед:

Манбаъ: will.com

Илова Эзоҳ