కుబెర్నెటీస్‌లోని పాడ్ ప్రాధాన్యతలు గ్రాఫానా ల్యాబ్స్‌లో పనికిరాని సమయానికి ఎలా కారణమయ్యాయి

గమనిక. అనువాదం.: గ్రాఫానా సృష్టికర్తలు నిర్వహించే క్లౌడ్ సేవలో ఇటీవలి పనికిరాని సమయానికి గల కారణాల గురించి సాంకేతిక వివరాలను మేము మీ దృష్టికి అందిస్తున్నాము. ఇన్‌ఫ్రాస్ట్రక్చర్ నాణ్యతను మెరుగుపరచడానికి రూపొందించిన కొత్త మరియు అత్యంత ఉపయోగకరమైన ఫీచర్ ఎలా ఉంటుందనేదానికి ఇది ఒక క్లాసిక్ ఉదాహరణ... మీరు ఉత్పత్తి యొక్క వాస్తవికతలలో దాని అప్లికేషన్ యొక్క అనేక సూక్ష్మ నైపుణ్యాలను అందించకపోతే హాని కలిగిస్తుంది. మీ తప్పుల నుండి మాత్రమే కాకుండా నేర్చుకోవడానికి మిమ్మల్ని అనుమతించే ఇలాంటి పదార్థాలు కనిపించినప్పుడు ఇది చాలా బాగుంది. గ్రాఫానా ల్యాబ్స్ నుండి ఉత్పత్తి వైస్ ప్రెసిడెంట్ నుండి ఈ టెక్స్ట్ యొక్క అనువాద వివరాలు ఉన్నాయి.

కుబెర్నెటీస్‌లోని పాడ్ ప్రాధాన్యతలు గ్రాఫానా ల్యాబ్స్‌లో పనికిరాని సమయానికి ఎలా కారణమయ్యాయి

జూలై 19, శుక్రవారం, గ్రాఫానా క్లౌడ్‌లో హోస్ట్ చేయబడిన ప్రోమేథియస్ సేవ దాదాపు 30 నిమిషాల పాటు పనిచేయడం ఆగిపోయింది. అంతరాయానికి గురైన కస్టమర్లందరికీ నేను క్షమాపణలు కోరుతున్నాను. మీకు అవసరమైన పర్యవేక్షణ సాధనాలను అందించడమే మా పని, మరియు అవి అందుబాటులో లేకుంటే మీ జీవితాన్ని మరింత కష్టతరం చేయవచ్చని మేము అర్థం చేసుకున్నాము. ఈ ఘటనను అత్యంత సీరియస్‌గా తీసుకుంటున్నాం. ఈ గమనిక ఏమి జరిగింది, మేము ఎలా ప్రతిస్పందించాము మరియు అది మళ్లీ జరగకుండా చూసుకోవడానికి మేము ఏమి చేస్తున్నామో వివరిస్తుంది.

పూర్వచరిత్ర

గ్రాఫానా క్లౌడ్ హోస్ట్ చేసిన ప్రోమేతియస్ సేవ ఆధారంగా ఉంది కార్టెక్స్ — CNCF ప్రాజెక్ట్ అడ్డంగా స్కేలబుల్, అత్యంత అందుబాటులో, బహుళ-అద్దెదారు ప్రోమేథియస్ సేవను సృష్టించడానికి. కార్టెక్స్ ఆర్కిటెక్చర్ వ్యక్తిగత మైక్రోసర్వీస్‌ల సమితిని కలిగి ఉంటుంది, వీటిలో ప్రతి ఒక్కటి దాని స్వంత పనితీరును నిర్వహిస్తుంది: ప్రతిరూపణ, నిల్వ, ప్రశ్నలు మొదలైనవి. కార్టెక్స్ యాక్టివ్ డెవలప్‌మెంట్‌లో ఉంది మరియు నిరంతరం కొత్త ఫీచర్‌లను జోడిస్తోంది మరియు పనితీరును మెరుగుపరుస్తుంది. మేము కొత్త కార్టెక్స్ విడుదలలను క్లస్టర్‌లకు క్రమం తప్పకుండా అమలు చేస్తాము, తద్వారా కస్టమర్‌లు ఈ ఫీచర్‌ల ప్రయోజనాన్ని పొందగలరు - అదృష్టవశాత్తూ, కార్టెక్స్‌ని డౌన్‌టైమ్ లేకుండా అప్‌డేట్ చేయవచ్చు.

అతుకులు లేని అప్‌డేట్‌ల కోసం, ఇన్‌జెస్టర్ కార్టెక్స్ సేవకు అప్‌డేట్ ప్రాసెస్ సమయంలో అదనపు ఇంజెస్టర్ ప్రతిరూపం అవసరం. (గమనిక. అనువాదం.: ఇంజెస్టర్ - కార్టెక్స్ యొక్క ప్రాథమిక భాగం. దీని పని స్థిరమైన నమూనాలను సేకరించడం, వాటిని ప్రోమేతియస్ భాగాలుగా సమూహపరచడం మరియు వాటిని DynamoDB, BigTable లేదా Cassandra వంటి డేటాబేస్‌లో నిల్వ చేయడం.) ఇది పాత ఇన్‌జెస్టర్‌లను ప్రస్తుత డేటాను కొత్త ఇంజెస్టర్‌లకు ఫార్వార్డ్ చేయడానికి అనుమతిస్తుంది. ఇన్‌జెస్టర్‌లు రిసోర్స్-డిమాండింగ్ అని గమనించాలి. అవి పని చేయడానికి, మీరు ఒక పాడ్‌కు 4 కోర్లు మరియు 15 GB మెమరీని కలిగి ఉండాలి, అనగా. మా కుబెర్నెట్స్ క్లస్టర్‌ల విషయంలో బేస్ మెషీన్ యొక్క ప్రాసెసింగ్ పవర్ మరియు మెమరీలో 25%. సాధారణంగా, మేము సాధారణంగా క్లస్టర్‌లో 4 కోర్లు మరియు 15 GB మెమరీ కంటే ఎక్కువగా ఉపయోగించని వనరులను కలిగి ఉన్నాము, కాబట్టి మేము అప్‌గ్రేడ్‌ల సమయంలో ఈ అదనపు ఇన్‌జెస్టర్‌లను సులభంగా స్పిన్ చేయవచ్చు.

అయినప్పటికీ, సాధారణ ఆపరేషన్ సమయంలో యంత్రాలు ఏవీ ఈ 25% ఉపయోగించని వనరులను కలిగి ఉండవు. అవును, మేము కష్టపడము: CPU మరియు మెమరీ ఇతర ప్రక్రియలకు ఎల్లప్పుడూ ఉపయోగకరంగా ఉంటాయి. ఈ సమస్యను పరిష్కరించడానికి, మేము ఉపయోగించాలని నిర్ణయించుకున్నాము కుబెర్నెటెస్ పాడ్ ప్రాధాన్యతలు. ఇతర (స్టేట్‌లెస్) మైక్రోసర్వీస్‌ల కంటే ఇంజెస్టర్‌లకు అధిక ప్రాధాన్యత ఇవ్వాలనే ఆలోచన ఉంది. మేము అదనపు (N+1) ఇంజెస్టర్‌ని అమలు చేయవలసి వచ్చినప్పుడు, మేము ఇతర చిన్న పాడ్‌లను తాత్కాలికంగా స్థానభ్రంశం చేస్తాము. ఈ పాడ్‌లు ఇతర మెషీన్‌లలోని ఉచిత వనరులకు బదిలీ చేయబడతాయి, అదనపు ఇంజెస్టర్‌ను అమలు చేయడానికి తగినంత పెద్ద “రంధ్రం” వదిలివేయబడుతుంది.

జూలై 18, గురువారం, మేము మా క్లస్టర్‌లకు నాలుగు కొత్త ప్రాధాన్యత స్థాయిలను రూపొందించాము: క్లిష్టమైన, పొడవైన, సగటు и తక్కువ. వారు దాదాపు ఒక వారం పాటు క్లయింట్ ట్రాఫిక్ లేకుండా అంతర్గత క్లస్టర్‌లో పరీక్షించబడ్డారు. డిఫాల్ట్‌గా, పేర్కొన్న ప్రాధాన్యత లేని పాడ్‌లు స్వీకరించబడ్డాయి సగటు ప్రాధాన్యత, క్లాస్ ఇన్‌జెస్టర్‌ల కోసం సెట్ చేయబడింది అధిక ప్రాధాన్యత. క్లిష్టమైన పర్యవేక్షణ కోసం రిజర్వ్ చేయబడింది (ప్రోమేతియస్, అలర్ట్‌మేనేజర్, నోడ్-ఎగుమతిదారు, కుబే-స్టేట్-మెట్రిక్స్ మొదలైనవి). మా కాన్ఫిగరేషన్ తెరిచి ఉంది మరియు మీరు PRని వీక్షించవచ్చు ఇక్కడ.

క్రాష్

శుక్రవారం, జూలై 19, ఇంజనీర్లలో ఒకరు పెద్ద క్లయింట్ కోసం కొత్త అంకితమైన కార్టెక్స్ క్లస్టర్‌ను ప్రారంభించారు. ఈ క్లస్టర్ కోసం కాన్ఫిగర్ కొత్త పాడ్ ప్రాధాన్యతలను చేర్చలేదు, కాబట్టి అన్ని కొత్త పాడ్‌లకు డిఫాల్ట్ ప్రాధాన్యత కేటాయించబడింది - సగటు.

కుబెర్నెటెస్ క్లస్టర్‌లో కొత్త కార్టెక్స్ క్లస్టర్ కోసం తగినంత వనరులు లేవు మరియు ఇప్పటికే ఉత్పత్తి చేయబడిన కార్టెక్స్ క్లస్టర్ అప్‌డేట్ చేయబడలేదు (ఇంజెస్టర్‌లు లేకుండా పోయారు. అధిక ప్రాధాన్యత). డిఫాల్ట్‌గా కొత్త క్లస్టర్ యొక్క ఇన్‌జెస్టర్‌లు కలిగి ఉన్నందున సగటు ప్రాధాన్యత, మరియు ఉత్పత్తిలో ఉన్న పాడ్‌లు ప్రాధాన్యత లేకుండా పని చేశాయి, కొత్త క్లస్టర్ యొక్క ఇన్‌జెస్టర్‌లు ఇప్పటికే ఉన్న కార్టెక్స్ ప్రొడక్షన్ క్లస్టర్ నుండి ఇంజెస్టర్‌లను భర్తీ చేశాయి.

ఉత్పత్తి క్లస్టర్‌లో తొలగించబడిన ఇన్‌జెస్టర్ కోసం ప్రతిరూప సెట్ తొలగించబడిన పాడ్‌ను గుర్తించింది మరియు నిర్దిష్ట సంఖ్యలో కాపీలను నిర్వహించడానికి కొత్తదాన్ని సృష్టించింది. కొత్త పాడ్ డిఫాల్ట్‌గా కేటాయించబడింది సగటు ప్రాధాన్యత, మరియు ఉత్పత్తిలో మరొక "పాత" ఇంజెస్టర్ దాని వనరులను కోల్పోయింది. ఫలితం వచ్చింది హిమపాతం ప్రక్రియ, ఇది కార్టెక్స్ ఉత్పత్తి క్లస్టర్‌ల కోసం ఇంజెస్టర్ నుండి అన్ని పాడ్‌ల స్థానభ్రంశానికి దారితీసింది.

ఇన్‌జెస్టర్‌లు స్టేట్‌ఫుల్‌గా ఉంటాయి మరియు మునుపటి 12 గంటల డేటాను నిల్వ చేస్తాయి. ఇది దీర్ఘ-కాల నిల్వకు వ్రాయడానికి ముందు వాటిని మరింత సమర్థవంతంగా కుదించడానికి అనుమతిస్తుంది. దీనిని సాధించడానికి, కార్టెక్స్ డిస్ట్రిబ్యూటెడ్ హాష్ టేబుల్ (DHT)ని ఉపయోగించి సిరీస్‌లోని డేటాను ధ్వంసం చేస్తుంది మరియు డైనమో-శైలి కోరం అనుగుణ్యతను ఉపయోగించి మూడు ఇన్‌జెస్టర్‌లలో ప్రతి సిరీస్‌ను పునరావృతం చేస్తుంది. కార్టెక్స్ నిలిపివేయబడిన ఇన్‌జెస్టర్‌లకు డేటాను వ్రాయదు. అందువల్ల, పెద్ద సంఖ్యలో ఇన్‌జెస్టర్‌లు DHT నుండి నిష్క్రమించినప్పుడు, కోర్టెక్స్ ఎంట్రీల యొక్క తగినంత ప్రతిరూపాన్ని అందించదు మరియు అవి క్రాష్ అవుతాయి.

గుర్తింపు మరియు నివారణ

"ఎర్రర్ బడ్జెట్" ఆధారంగా కొత్త ప్రోమేతియస్ నోటిఫికేషన్‌లు (లోపం-బడ్జెట్ ఆధారిత — వివరాలు భవిష్యత్తు కథనంలో కనిపిస్తాయి) షట్‌డౌన్ ప్రారంభమైన 4 నిమిషాల తర్వాత అలారం మోగడం ప్రారంభించింది. తదుపరి ఐదు నిమిషాల్లో, మేము కొన్ని విశ్లేషణలను అమలు చేసాము మరియు కొత్త మరియు ఇప్పటికే ఉన్న ఉత్పత్తి క్లస్టర్‌లను హోస్ట్ చేయడానికి అంతర్లీన కుబెర్నెట్స్ క్లస్టర్‌ను స్కేల్ చేసాము.

మరో ఐదు నిమిషాల తర్వాత, పాత ఇన్‌జెస్టర్‌లు తమ డేటాను విజయవంతంగా వ్రాసారు, కొత్తవి ప్రారంభించబడ్డాయి మరియు కార్టెక్స్ క్లస్టర్‌లు మళ్లీ అందుబాటులోకి వచ్చాయి.

మరో 10 నిమిషాలు కార్టెక్స్ ముందు ఉన్న ప్రామాణీకరణ రివర్స్ ప్రాక్సీల నుండి అవుట్-ఆఫ్-మెమరీ (OOM) లోపాలను నిర్ధారించడానికి మరియు సరిచేయడానికి వెచ్చించారు. OOM లోపాలు QPSలో పదిరెట్లు పెరగడం వల్ల సంభవించాయి (క్లయింట్ యొక్క ప్రోమెథియస్ సర్వర్‌ల నుండి వచ్చిన అతిగా దూకుడుగా ఉన్న అభ్యర్థనల కారణంగా మేము విశ్వసిస్తున్నాము).

ప్రభావాలు

మొత్తం పనికిరాని సమయం 26 నిమిషాలు. డేటా ఏదీ కోల్పోలేదు. ఇన్‌జెస్టర్‌లు ఇన్-మెమరీ డేటా మొత్తాన్ని దీర్ఘకాలిక నిల్వలోకి విజయవంతంగా లోడ్ చేసారు. షట్‌డౌన్ సమయంలో, క్లయింట్ ప్రోమేతియస్ సర్వర్లు బఫర్‌గా తొలగించబడ్డాయి (రిమోట్) ఉపయోగించి రికార్డింగ్‌లు కొత్త API రిమోట్_రైట్ WAL ఆధారంగా (రచయిత కల్లమ్ స్టియాన్ గ్రాఫానా ల్యాబ్స్ నుండి) మరియు క్రాష్ తర్వాత విఫలమైన వ్రాతలను పునరావృతం చేసింది.

కుబెర్నెటీస్‌లోని పాడ్ ప్రాధాన్యతలు గ్రాఫానా ల్యాబ్స్‌లో పనికిరాని సమయానికి ఎలా కారణమయ్యాయి
ఉత్పత్తి క్లస్టర్ వ్రాత కార్యకలాపాలు

కనుగొన్న

ఈ సంఘటన నుండి పాఠాలు నేర్చుకోవడం మరియు ఇది పునరావృతం కాకుండా ఉండటానికి అవసరమైన చర్యలు తీసుకోవడం చాలా ముఖ్యం.

తిరిగి చూస్తే, మేము డిఫాల్ట్‌ని సెట్ చేసి ఉండకూడదు సగటు ఉత్పత్తిలోని అన్ని ఇన్‌జెస్టర్‌లు పొందే వరకు ప్రాధాన్యత పొడవైన ఒక ప్రాధాన్యత. అదనంగా, వాటిని ముందుగానే చూసుకోవడం అవసరం అధిక ప్రాధాన్యత. ఇప్పుడు అంతా ఫిక్స్ అయింది. కుబెర్నెట్స్‌లో పాడ్ ప్రాధాన్యతలను ఉపయోగించడాన్ని పరిగణనలోకి తీసుకునే ఇతర సంస్థలకు మా అనుభవం సహాయపడుతుందని మేము ఆశిస్తున్నాము.

క్లస్టర్‌కి గ్లోబల్ కాన్ఫిగరేషన్‌లు ఉన్న ఏవైనా అదనపు ఆబ్జెక్ట్‌ల విస్తరణపై మేము అదనపు స్థాయి నియంత్రణను జోడిస్తాము. ఇప్పటి నుండి, అటువంటి మార్పులు అంచనా వేయబడతాయి bоఎక్కువ మంది వ్యక్తులు. అదనంగా, క్రాష్‌కు కారణమైన సవరణ ప్రత్యేక ప్రాజెక్ట్ డాక్యుమెంట్ కోసం చాలా చిన్నదిగా పరిగణించబడింది - ఇది GitHub సంచికలో మాత్రమే చర్చించబడింది. ఇప్పటి నుండి, కాన్ఫిగరేషన్‌లకు అటువంటి మార్పులన్నీ తగిన ప్రాజెక్ట్ డాక్యుమెంటేషన్‌తో కూడి ఉంటాయి.

చివరగా, మేము చూసిన ఓవర్‌లోడ్ OOMని నిరోధించడానికి ప్రామాణీకరణ రివర్స్ ప్రాక్సీ పరిమాణాన్ని ఆటోమేట్ చేస్తాము మరియు భవిష్యత్తులో ఇలాంటి సమస్యలను నివారించడానికి ఫాల్‌బ్యాక్ మరియు స్కేలింగ్‌కు సంబంధించిన ప్రోమేథియస్ డిఫాల్ట్ సెట్టింగ్‌లను సమీక్షిస్తాము.

వైఫల్యం కొన్ని సానుకూల పరిణామాలను కూడా కలిగి ఉంది: అవసరమైన వనరులను పొందిన తరువాత, అదనపు జోక్యం లేకుండా కార్టెక్స్ స్వయంచాలకంగా కోలుకుంది. మేము పనిచేసిన విలువైన అనుభవాన్ని కూడా పొందాము గ్రాఫనా లోకి - మా కొత్త లాగ్ అగ్రిగేషన్ సిస్టమ్ - ఇది వైఫల్యం సమయంలో మరియు తర్వాత అన్ని ఇన్‌జెస్టర్‌లు సరిగ్గా ప్రవర్తించేలా చేయడంలో సహాయపడింది.

అనువాదకుని నుండి PS

మా బ్లాగులో కూడా చదవండి:

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి