በኩበርኔትስ ውስጥ ያሉ ቅድሚያ የሚሰጣቸው ነገሮች በግራፋና ቤተሙከራዎች ላይ የእረፍት ጊዜን እንዴት እንደፈጠሩ

ማስታወሻ. ትርጉምበ Grafana ፈጣሪዎች የሚጠበቀው በደመና አገልግሎት ውስጥ በቅርብ ጊዜ የዘገየበትን ምክንያት በተመለከተ ቴክኒካዊ ዝርዝሮችን ለእርስዎ ትኩረት እናቀርባለን። ይህ የመሰረተ ልማትን ጥራት ለማሻሻል የተነደፈ አዲስ እና እጅግ በጣም ጠቃሚ የሚመስል ባህሪ እንዴት እንደሆነ የሚታወቅ ምሳሌ ነው። ከስህተቶችዎ ብቻ ሳይሆን እንዲማሩ የሚፈቅዱ እንደዚህ ያሉ ቁሳቁሶች ሲታዩ በጣም ጥሩ ነው. ዝርዝሮች በዚህ ጽሑፍ ትርጉም ውስጥ ከግራፋና ላብስ የምርት ምክትል ፕሬዝዳንት ናቸው።

በኩበርኔትስ ውስጥ ያሉ ቅድሚያ የሚሰጣቸው ነገሮች በግራፋና ቤተሙከራዎች ላይ የእረፍት ጊዜን እንዴት እንደፈጠሩ

አርብ ጁላይ 19፣ በግራፋና ክላውድ ውስጥ ያለው የተስተናገደ ፕሮሜቴየስ አገልግሎት ለ30 ደቂቃዎች ያህል መስራት አቁሟል። በመጥፋቱ ለተጎዱ ደንበኞች በሙሉ ይቅርታ እጠይቃለሁ። የእኛ ስራ የሚፈልጓቸውን የክትትል መሳሪያዎች ማቅረብ ነው፣ እና እነርሱን አለመገኘት ህይወትዎን የበለጠ ከባድ እንደሚያደርገው እንረዳለን። ይህንን ክስተት በጣም አክብደን እንወስደዋለን። ይህ ማስታወሻ ምን እንደተፈጠረ፣ እንዴት ምላሽ እንደሰጠን እና እንደገና እንዳይከሰት ምን እያደረግን እንዳለ ያብራራል።

prehistory

Grafana Cloud Hosted Prometheus አገልግሎት የተመሰረተው በዚህ ላይ ነው። ኮርሴክስ — በአግድም ሊሰፋ የሚችል፣ በጣም የሚገኝ፣ ባለብዙ ተከራይ ፕሮሜቲየስ አገልግሎት ለመፍጠር CNCF ፕሮጀክት። የኮርቴክስ አርክቴክቸር የግለሰብ ማይክሮ አግልግሎት ስብስብን ያቀፈ ሲሆን እያንዳንዱም የራሱን ተግባር ያከናውናል፡ ማባዛት፣ ማከማቻ፣ መጠይቆች፣ ወዘተ. Cortex በንቃት ልማት ላይ ነው እና በየጊዜው አዳዲስ ባህሪያትን በመጨመር እና አፈፃፀሙን ያሻሽላል። ደንበኞች እነዚህን ባህሪያት እንዲጠቀሙባቸው በየጊዜው አዳዲስ የ Cortex ልቀቶችን ወደ ክላስተር እናሰማራዋለን - እንደ እድል ሆኖ ኮርቴክስ ያለማቋረጥ ሊዘመን ይችላል።

እንከን የለሽ ዝማኔዎች ለማግኘት የኢንጌስተር ኮርቴክስ አገልግሎት በማዘመን ሂደት ተጨማሪ የኢንጅስተር ቅጂ ያስፈልገዋል። (ማስታወሻ. ትርጉም: ኢንጅስተር - የ Cortex መሠረታዊ አካል. ስራው የማያቋርጥ የናሙናዎችን ጅረት መሰብሰብ፣ ወደ ፕሮሜቲየስ ክፍሎቹ ማቧደን እና እንደ ዳይናሞ ዲቢ፣ ቢግ ቴብል ወይም ካሳንድራ ባሉ የውሂብ ጎታ ውስጥ ማከማቸት ነው።) ይህ አሮጌ ኢንጅስተር የአሁኑን መረጃ ወደ አዲስ ኢንጅስተር እንዲያስተላልፍ ያስችለዋል። ኢንጅስተር የሀብት ጠያቂዎች መሆናቸውን ልብ ሊባል ይገባል። ለእነሱ እንዲሰሩ, በእያንዳንዱ ፖድ 4 ኮር እና 15 ጂቢ ማህደረ ትውስታ ሊኖርዎት ይገባል, ማለትም. በእኛ የኩበርኔትስ ስብስቦች ውስጥ የመሠረት ማሽን የማቀነባበሪያ ኃይል እና ማህደረ ትውስታ 25%። በአጠቃላይ ብዙ ጥቅም ላይ ያልዋሉ ሀብቶች በክላስተር ውስጥ ከ4 ኮር እና 15 ጂቢ ማህደረ ትውስታ ስላለን በማሻሻያ ጊዜ እነዚህን ተጨማሪ ኢንጅስተር በቀላሉ ማሽከርከር እንችላለን።

ይሁን እንጂ ብዙውን ጊዜ በተለመደው ቀዶ ጥገና ወቅት የትኛውም ማሽኖች ይህ 25% ጥቅም ላይ ያልዋሉ ሀብቶች የላቸውም. አዎ, እኛ እንኳን አንሞክርም: ሲፒዩ እና ማህደረ ትውስታ ሁልጊዜ ለሌሎች ሂደቶች ጠቃሚ ይሆናል. ይህንን ችግር ለመፍታት, ለመጠቀም ወስነናል Kubernetes Pod ቅድሚያ የሚሰጡዋቸውን. ሀሳቡ ለኢንጅስተር ከሌሎች (ሀገር-አልባ) ማይክሮ አገልግሎቶች የበለጠ ቅድሚያ መስጠት ነው። ተጨማሪ (N+1) ኢንጅስተርን ማስኬድ ስንፈልግ፣ ለጊዜው ሌሎች ትናንሽ ፖድዎችን እናስቀምጣለን። እነዚህ ፖድዎች በሌሎች ማሽኖች ላይ ወደ ነጻ ሃብቶች ይተላለፋሉ, ይህም ተጨማሪ ኢንጅስተር ለማስኬድ በቂ የሆነ "ቀዳዳ" ይተዋቸዋል.

ሐሙስ ጁላይ 18፣ ለቡድኖቻችን አራት አዳዲስ ቅድሚያ ደረጃዎችን አውጥተናል፡- ወሳኝ, ከፍተኛ, አማካይ и ዝቅተኛ. ለአንድ ሳምንት ያህል የደንበኛ ትራፊክ በሌለበት ውስጣዊ ክላስተር ላይ ተፈትነዋል። በነባሪ ፣ ያለ የተወሰነ ቅድሚያ የተቀበሉ ፖድዎች አማካይ ቅድሚያ, ክፍል ጋር Ingesters ተቀናብሯል ከፍተኛ ቅድሚያ የሚሰጡዋቸውን. ወሳኝ ለክትትል ተይዟል (Prometheus, Alertmanager, node-exporter, kube-state-metrics, ወዘተ.) የእኛ ውቅረት ክፍት ነው፣ እና PRን ማየት ይችላሉ። እዚህ.

ብልሽት

አርብ ጁላይ 19፣ ከመሐንዲሶቹ አንዱ ለትልቅ ደንበኛ አዲስ የኮርቴክስ ክላስተር ጀምሯል። የዚህ ክላስተር ውቅር አዲስ የፖድ ቅድሚያ የሚሰጣቸውን ነገሮች አላካተተም፣ ስለዚህ ሁሉም አዳዲስ ፖድዎች በነባሪ ቅድሚያ ተሰጥቷቸዋል - አማካይ.

የኩበርኔትስ ክላስተር ለአዲሱ የኮርቴክስ ክላስተር በቂ ግብአት አልነበረውም፣ እና ነባሩ የምርት ኮርቴክስ ክላስተር አልዘመነም (ኢንጀስተር ያለ ተወው ነበር) ከፍተኛ ቅድሚያ)። የአዲሱ ክላስተር Ingesters በነባሪነት ስለነበራቸው አማካይ ቅድሚያ በመስጠት ላይ ያሉት እና በምርት ላይ ያሉት ፖድዎች ምንም ዓይነት ቅድሚያ ሳይሰጡ ሰርተዋል፣ የአዲሱ ክላስተር ኢንጅስተር ኢንጅስተሮችን አሁን ካለው የኮርቴክስ ምርት ክላስተር ተክተዋል።

በምርት ክላስተር ውስጥ ለተባረረው ኢንጅስተር ReplicaSet የተባረረውን ፖድ አግኝቶ የተወሰነውን የቅጂ ብዛት ለማቆየት አዲስ ፈጠረ። አዲሱ ፖድ በነባሪነት ተመድቧል አማካይ ቅድሚያ, እና በምርት ላይ ያለ ሌላ "አሮጌ" ኢንጅስተር ሀብቱን አጥቷል. ውጤቱም ሆነ የበረዶ መንሸራተት ሂደትይህም ከኢንጌስተር ለኮርቴክስ የምርት ስብስቦች ሁሉም ፖድዎች እንዲፈናቀሉ አድርጓል።

አስመጪዎች ሁኔታዊ ናቸው እና ላለፉት 12 ሰዓታት ውሂብ ያከማቹ። ይህ ወደ የረጅም ጊዜ ማከማቻ ከመጻፍዎ በፊት እነሱን በብቃት ለመጭመቅ ያስችለናል። ይህንን ለማግኘት፣ Cortex የተከፋፈለ ሃሽ ሠንጠረዥን (DHT)ን በመጠቀም መረጃን በተከታታዩ ላይ ያፈልቃል እና እያንዳንዱን ተከታታዮች በDynamo-style ምልአተ-ምአተ ጉባኤ ወጥነት በመጠቀም በሶስት Ingesters ይደግማል። Cortex ለአካል ጉዳተኞች Ingesters ውሂብ አይጽፍም። ስለዚህ፣ ብዙ ቁጥር ያላቸው ኢንጅስተር ከ DHT ሲወጡ፣ Cortex የመግቢያዎቹን በቂ ድግግሞሽ ማቅረብ አይችልም፣ እና ይወድቃሉ።

መለየት እና ማረም

በ"ስህተት በጀት" ላይ የተመሰረቱ አዲስ የፕሮሜቴየስ ማሳወቂያዎች (ስህተት-በጀት ላይ የተመሰረተ - ዝርዝሮች በሚቀጥለው መጣጥፍ ላይ ይታያሉ) መዝጋት ከጀመረ ከ 4 ደቂቃዎች በኋላ ማንቂያውን ማሰማት ጀመረ። በሚቀጥሉት አምስት ደቂቃዎች ውስጥ አንዳንድ ምርመራዎችን አደረግን እና አዲሱን እና ነባሩን የምርት ስብስቦችን ለማስተናገድ የታችኛውን የኩበርኔትስ ክላስተር አሳድገናል።

ከአምስት ደቂቃዎች በኋላ አሮጌዎቹ ኢንጅስተር በተሳካ ሁኔታ ውሂባቸውን ፃፉ ፣ አዳዲሶቹ ጀመሩ እና የ Cortex ስብስቦች እንደገና ይገኛሉ።

ሌሎች 10 ደቂቃዎች ከኮርቴክስ ፊት ለፊት ከሚገኙት የማረጋገጫ ተቃራኒ ፕሮክሲዎች ከትውስታ ውጪ የሆኑትን (OOM) ስህተቶችን በመመርመር እና በማረም ጊዜ አሳልፈዋል። የOOM ስህተቶች የተከሰቱት በQPS በአስር እጥፍ በመጨመሩ ነው (ከደንበኛው የፕሮሜቲየስ አገልጋዮች ከመጠን በላይ ኃይለኛ በሆኑ ጥያቄዎች እናምናለን)።

ውጤቶች

አጠቃላይ የዕረፍት ጊዜ 26 ደቂቃ ነበር። ምንም ውሂብ አልጠፋም። Ingesters ሁሉንም የማህደረ ትውስታ ውሂብ በተሳካ ሁኔታ ወደ የረጅም ጊዜ ማከማቻ ጭነዋል። በመዘጋቱ ወቅት፣ ደንበኛ ፕሮሜቲየስ አገልጋዮች ተሰርዘዋል (ርቀት) በመጠቀም ቅጂዎች አዲስ API remote_write በWAL (የተጻፈው በ Callum Styan ከግራፋና ላብስ) እና ከብልሽቱ በኋላ ያልተሳካውን ጽሁፎች ደገሙ.

በኩበርኔትስ ውስጥ ያሉ ቅድሚያ የሚሰጣቸው ነገሮች በግራፋና ቤተሙከራዎች ላይ የእረፍት ጊዜን እንዴት እንደፈጠሩ
የማምረቻ ክላስተር የመጻፍ ስራዎች

ግኝቶች

ከዚህ ክስተት መማር እና ተደጋጋሚነቱን ለማስቀረት አስፈላጊውን እርምጃ መውሰድ አስፈላጊ ነው።

በቅድመ-እይታ, ነባሪውን ማዘጋጀት አልነበረብንም አማካይ በምርት ውስጥ ያሉ ሁሉም ኢንጅስተር እስኪያገኙ ድረስ ቅድሚያ መስጠት ከፍተኛ ቅድሚያ የሚሰጠው. በተጨማሪም, አስቀድመው እነሱን መንከባከብ አስፈላጊ ነበር ከፍተኛ ቅድሚያ የሚሰጡዋቸውን. አሁን ሁሉም ነገር ተስተካክሏል። የእኛ ልምድ በኩበርኔትስ ውስጥ የፖድ ቅድሚያ የሚሰጣቸውን ነገሮች ለመጠቀም ሌሎች ድርጅቶችን እንደሚረዳ ተስፋ እናደርጋለን።

አወቃቀራቸው ዓለም አቀፋዊ የሆኑ ማናቸውም ተጨማሪ ዕቃዎችን ወደ ክላስተር በማሰማራት ላይ ተጨማሪ የቁጥጥር ደረጃ እንጨምራለን. ከአሁን ጀምሮ እንደዚህ አይነት ለውጦች ይገመገማሉ ለоተጨማሪ ሰዎች. በተጨማሪም፣ ለአደጋው መንስኤ የሆነው ማሻሻያ ለአንድ የተለየ የፕሮጀክት ሰነድ በጣም ትንሽ ነው ተብሎ ተወስዷል - በ GitHub ጉዳይ ላይ ብቻ ተብራርቷል። ከአሁን ጀምሮ፣ በውቅረት ላይ ያሉ ሁሉም ለውጦች ከተገቢው የፕሮጀክት ሰነዶች ጋር አብረው ይመጣሉ።

በመጨረሻም፣ የተመለከትነውን ከመጠን በላይ መጫን OOMን ለመከላከል የማረጋገጫ ተገላቢጦሽ ፕሮክሲን በራስ ሰር እናስተካክላለን፣ እና ወደፊት ተመሳሳይ ችግሮችን ለመከላከል የPrometheus ነባሪ ቅንጅቶችን ከመውደቅ እና ሚዛን ጋር የተዛመዱ እንገመግማለን።

ውድቀቱም አንዳንድ አወንታዊ ውጤቶችን አስከትሏል፡ አስፈላጊ የሆኑትን ግብዓቶች ከተቀበለ በኋላ ኮርቴክስ ያለ ተጨማሪ ጣልቃ ገብነት በራስ-ሰር አገገመ። አብሮ በመስራት ጠቃሚ ልምድ አግኝተናል ግራፋና ሎኪ - አዲሱ የሎግ ማሰባሰብ ስርዓታችን - በውድቀቱ ወቅት እና በኋላ ሁሉም ኢንጅስተር በትክክል መስራታቸውን ለማረጋገጥ ረድቷል።

PS ከተርጓሚ

በብሎጋችን ላይ ያንብቡ፡-

ምንጭ: hab.com

አስተያየት ያክሉ