కుబెర్నెట్స్‌లో DNSతో సమస్యలు. పబ్లిక్ పోస్టుమార్టం

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

పోస్ట్‌మార్టమ్‌ల గురించి కొంచెం ఎక్కువ తెలుసుకోవాలనుకునే వారికి లేదా భవిష్యత్తులో కొన్ని సంభావ్య DNS సమస్యలను నివారించాలనుకునే వారికి ఈ కథనం ఉపయోగకరంగా ఉండవచ్చు.

కుబెర్నెట్స్‌లో DNSతో సమస్యలు. పబ్లిక్ పోస్టుమార్టం
ఇది DNS కాదు
ఇది DNS కాకూడదు
ఇది DNS

ప్రిప్లైలో పోస్ట్‌మార్టంలు మరియు ప్రక్రియల గురించి కొంచెం

పోస్ట్‌మార్టం ఒక లోపం లేదా ఉత్పత్తిలో కొన్ని సంఘటనలను వివరిస్తుంది. పోస్ట్‌మార్టంలో ఈవెంట్‌ల కాలక్రమం, వినియోగదారు ప్రభావం, మూల కారణం, తీసుకున్న చర్యలు మరియు నేర్చుకున్న పాఠాలు ఉంటాయి.

SREని కోరుతున్నారు

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

ఒక సంఘటనలో పాల్గొన్న వ్యక్తులు శిక్ష లేదా ప్రతీకారం గురించి భయపడకుండా వివరంగా మాట్లాడగలరని భావించాలి. నింద లేదు! పోస్ట్‌మార్టం రాయడం అనేది శిక్ష కాదు, మొత్తం కంపెనీకి నేర్చుకునే అవకాశం.

CALMS & DevOps ఉంచండి: S భాగస్వామ్యం కోసం

కుబెర్నెట్స్‌లో DNSతో సమస్యలు. పోస్టుమార్టం

తేదీ: 28.02.2020

రచయితలు: అమెట్ యు., ఆండ్రీ ఎస్., ఇగోర్ కె., అలెక్సీ పి.

స్థితి: పూర్తయింది

క్లుప్తంగా: Kubernetes క్లస్టర్‌లోని కొన్ని సేవలకు పాక్షిక DNS లభ్యత (26 నిమిషాలు).

ప్రభావం: A, B మరియు C సేవల కోసం 15000 ఈవెంట్‌లు కోల్పోయాయి

మూల కారణం: Kube-proxy conntrack టేబుల్ నుండి పాత ఎంట్రీని సరిగ్గా తీసివేయలేకపోయింది, కాబట్టి కొన్ని సేవలు ఇప్పటికీ ఉనికిలో లేని పాడ్‌లకు కనెక్ట్ చేయడానికి ప్రయత్నిస్తున్నాయి

E0228 20:13:53.795782       1 proxier.go:610] Failed to delete kube-system/kube-dns:dns endpoint connections, error: error deleting conntrack entries for UDP peer {100.64.0.10, 100.110.33.231}, error: conntrack command returned: ...

ట్రిగ్గర్: కుబెర్నెటెస్ క్లస్టర్ లోపల తక్కువ లోడ్ కారణంగా, CoreDNS-autoscaler విస్తరణలో పాడ్‌ల సంఖ్యను మూడు నుండి రెండుకి తగ్గించింది.

పరిష్కారం: అప్లికేషన్ యొక్క తదుపరి విస్తరణ కొత్త నోడ్‌ల సృష్టిని ప్రారంభించింది, కోర్‌డిఎన్‌ఎస్-ఆటోస్కేలర్ క్లస్టర్‌ను అందించడానికి మరిన్ని పాడ్‌లను జోడించింది, ఇది కాంట్రాక్ టేబుల్‌ని తిరిగి వ్రాయడానికి ప్రేరేపించింది.

గుర్తింపు: ప్రోమేతియస్ పర్యవేక్షణ A, B మరియు C సేవల కోసం పెద్ద సంఖ్యలో 5xx లోపాలను గుర్తించింది మరియు ఆన్-డ్యూటీ ఇంజనీర్‌లకు కాల్‌ని ప్రారంభించింది

కుబెర్నెట్స్‌లో DNSతో సమస్యలు. పబ్లిక్ పోస్టుమార్టం
కిబానాలో 5xx లోపాలు

చర్యలు

ప్రభావం
రకం
బాధ్యులు
పని

CoreDNS కోసం ఆటోస్కేలర్‌ని నిలిపివేయండి
అడ్డుకున్నారు
అమెట్ యు.
DEVOPS-695

కాషింగ్ DNS సర్వర్‌ని సెటప్ చేయండి
తగ్గుదల
మాక్స్ వి.
DEVOPS-665

కాంట్రాక్ పర్యవేక్షణను సెటప్ చేయండి
అడ్డుకున్నారు
అమెట్ యు.
DEVOPS-674

నేర్చుకున్న పాఠాలు

ఏది బాగా జరిగింది:

  • పర్యవేక్షణ బాగా పనిచేసింది. ప్రతిస్పందన వేగంగా మరియు వ్యవస్థీకృతమైంది
  • మేము నోడ్‌లపై ఎటువంటి పరిమితులను తాకలేదు

ఏమి తప్పు జరిగింది:

  • ఇప్పటికీ తెలియని నిజమైన మూల కారణం, ఇదే నిర్దిష్ట బగ్ విరుద్ధంగా
  • అన్ని చర్యలు పర్యవసానాలను మాత్రమే సరిచేస్తాయి, మూల కారణం కాదు (బగ్)
  • మేము త్వరగా లేదా తరువాత DNSతో సమస్యలను ఎదుర్కొనే అవకాశం ఉందని మాకు తెలుసు, కానీ మేము టాస్క్‌లకు ప్రాధాన్యత ఇవ్వలేదు

మనకు ఎక్కడ అదృష్టం వచ్చింది:

  • తదుపరి విస్తరణ CoreDNS-autoscaler ద్వారా ప్రేరేపించబడింది, ఇది contrack పట్టికను ఓవర్‌రైట్ చేసింది
  • ఈ బగ్ కొన్ని సేవలను మాత్రమే ప్రభావితం చేసింది

కాలక్రమం (EET)

Время
ప్రభావం

22:13
CoreDNS-autoscaler పాడ్‌ల సంఖ్యను మూడు నుండి రెండుకి తగ్గించింది

22:18
డ్యూటీలో ఉన్న ఇంజనీర్లు మానిటరింగ్ సిస్టమ్ నుండి కాల్స్ స్వీకరించడం ప్రారంభించారు

22:21
విధుల్లో ఉన్న ఇంజనీర్లు లోపాలకు కారణాలను కనుగొనడం ప్రారంభించారు.

22:39
డ్యూటీలో ఉన్న ఇంజనీర్లు తాజా సేవలలో ఒకదానిని మునుపటి సంస్కరణకు రోల్ బ్యాక్ చేయడం ప్రారంభించారు

22:40
5xx లోపాలు కనిపించడం ఆగిపోయాయి, పరిస్థితి స్థిరీకరించబడింది

  • గుర్తించే సమయం: 20 నిమిషం
  • చర్యకు ముందు సమయం: 20 నిమిషం
  • పరిష్కరించడానికి సమయం: 20 నిమిషం

అదనపు సమాచారం

CPU వినియోగాన్ని తగ్గించడానికి, Linux కెర్నల్ conntrack అని పిలువబడే దాన్ని ఉపయోగిస్తుంది. సంక్షిప్తంగా, ఇది ప్రత్యేక పట్టికలో నిల్వ చేయబడిన NAT రికార్డుల జాబితాను కలిగి ఉన్న యుటిలిటీ. తదుపరి ప్యాకెట్ అదే పాడ్ నుండి మునుపటి అదే పాడ్‌కు వచ్చినప్పుడు, చివరి IP చిరునామా మళ్లీ లెక్కించబడదు, కానీ కాంటాక్ టేబుల్ నుండి తీసుకోబడుతుంది.
కుబెర్నెట్స్‌లో DNSతో సమస్యలు. పబ్లిక్ పోస్టుమార్టం
కాంట్రాక్ ఎలా పనిచేస్తుంది

ఫలితాలు

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

మూలం: www.habr.com

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