Vandamál með DNS í Kubernetes. Opinber skurðaðgerð

Athugið þýðing: Þetta er þýðing á opinberri skurðaðgerð af verkfræðibloggi fyrirtækisins Einfaldlega. Það lýsir vandamáli með tengingu í Kubernetes klasa, sem leiddi til hluta niður í miðbæ sumrar framleiðsluþjónustu.

Þessi grein gæti verið gagnleg fyrir þá sem vilja læra aðeins meira um skurðaðgerðir eða koma í veg fyrir hugsanleg DNS vandamál í framtíðinni.

Vandamál með DNS í Kubernetes. Opinber skurðaðgerð
Þetta er ekki DNS
Það getur ekki verið DNS
Það var DNS

Smá um skurðaðgerðir og ferla í Preply

Krabbamein lýsir bilun eða einhverjum atburði í framleiðslu. Eftirlíkingin inniheldur tímalínu atburða, áhrif notenda, undirrót, aðgerða sem gripið hefur verið til og lærdóms.

Er að leita að SRE

Á vikulegum fundum með pizzu, meðal tækniteymis, deilum við ýmsum upplýsingum. Einn mikilvægasti þáttur slíkra funda eru skurðaðgerðir sem oftast fylgja kynningu með glærum og ítarlegri greining á atvikinu. Jafnvel þó að við klappum ekki eftir skurðaðgerðir, reynum við að þróa menningu „engra sök“ (saklaus menning). Við trúum því að skrif og kynning á skurðaðgerðum geti hjálpað okkur (og öðrum) að koma í veg fyrir svipuð atvik í framtíðinni, þess vegna erum við að deila þeim.

Einstaklingar sem taka þátt í atviki ættu að finnast þeir geta tjáð sig ítarlega án þess að óttast refsingu eða hefnd. Engin sök! Að skrifa skurðaðgerð er ekki refsing, heldur lærdómsríkt tækifæri fyrir allt fyrirtækið.

Keep CALMS & DevOps: S er til að deila

Vandamál með DNS í Kubernetes. Postmortem

Dagsetningin: 28.02.2020

Höfundar: Amet U., Andrey S., Igor K., Alexey P.

Staða: Lokið

Stuttlega: DNS óaðgengi að hluta (26 mín) fyrir suma þjónustu í Kubernetes klasanum

Áhrif: 15000 atburðir tapaðir fyrir þjónustu A, B og C

Grunnorsök: Kube-proxy gat ekki fjarlægt gamla færslu á réttan hátt úr conntrack töflunni, þannig að sumar þjónustur voru enn að reyna að tengjast hólf sem ekki voru til

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: ...

Kveikja: Vegna lítils álags inni í Kubernetes þyrpingunni, minnkaði CoreDNS-autoscaler fjölda fræbelgja í dreifingunni úr þremur í tvo

lausn: Næsta dreifing forritsins hóf stofnun nýrra hnúta, CoreDNS-autoscaler bætti við fleiri belgjum til að þjóna þyrpingunni, sem olli endurskrifun á samtengingartöflunni

Uppgötvun: Vöktun Prometheus fann mikinn fjölda 5xx villna fyrir þjónustu A, B og C og hringdi í vakthafandi verkfræðinga

Vandamál með DNS í Kubernetes. Opinber skurðaðgerð
5xx villur í Kibana

Afþreying

áhrif
Tegund
Ábyrgðarmaður
Verkefni

Slökktu á autoscaler fyrir CoreDNS
komið í veg fyrir
Amet U.
DEVOPS-695

Settu upp skyndiminni DNS netþjón
minnka
Max V.
DEVOPS-665

Settu upp samtengingarvöktun
komið í veg fyrir
Amet U.
DEVOPS-674

Lexía lærð

Það sem gekk vel:

  • Vöktunin gekk vel. Viðbrögðin voru hröð og skipulögð
  • Við náðum engin takmörk á hnútunum

Hvað var að:

  • Enn óþekkt raunveruleg rót orsök, svipað og ákveðinn galla í sambandi
  • Allar aðgerðir leiðrétta aðeins afleiðingarnar, ekki undirrót (villa)
  • Við vissum að fyrr eða síðar gætum við átt í vandræðum með DNS, en við settum ekki verkefnin í forgang

Þar sem við vorum heppin:

  • Næsta dreifing var sett af stað af CoreDNS-autoscaler, sem skrifaði yfir conntrack töfluna
  • Þessi villa hafði aðeins áhrif á suma þjónustu

Tímalína (EET)

Tími
áhrif

22:13
CoreDNS-autoscaler minnkaði fjölda fræbelgja úr þremur í tvo

22:18
Vélstjórar á vakt fóru að fá símtöl frá eftirlitskerfinu

22:21
Verkfræðingar á vakt fóru að komast að orsökum villanna.

22:39
Verkfræðingar á vakt byrjuðu að endurnýja eina af nýjustu þjónustunni í fyrri útgáfu

22:40
5xx villur hættu að birtast, ástandið hefur náð jafnvægi

  • Tími til að greina: 4 mínútur
  • Tími fyrir aðgerð: 21 mínútur
  • Tími til að laga: 1 mínútur

viðbótarupplýsingar

Til að lágmarka CPU notkun notar Linux kjarninn eitthvað sem kallast conntrack. Í stuttu máli er þetta tól sem inniheldur lista yfir NAT færslur sem eru geymdar í sérstakri töflu. Þegar næsti pakki kemur frá sama pod í sama pod og áður verður endanleg IP tölu ekki endurreiknuð, heldur tekin úr conntrack töflunni.
Vandamál með DNS í Kubernetes. Opinber skurðaðgerð
Hvernig tenging virkar

Niðurstöður

Þetta var dæmi um eina af skurðaðgerðum okkar með nokkrum gagnlegum tenglum. Nánar tiltekið í þessari grein deilum við upplýsingum sem gætu nýst öðrum fyrirtækjum. Þess vegna erum við óhrædd við að gera mistök og þess vegna gerum við eina af skurðaðgerðum okkar opinberlega. Hér eru fleiri áhugaverðar opinberar skurðaðgerðir:

Heimild: www.habr.com

Bæta við athugasemd