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.
Þ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.
Á 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ð.
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
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
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
CoreDNS logs:
I0228 20:13:53.507780 1 event.go:221] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"kube-system", Name:"coredns", UID:"2493eb55-3dc0-11ea-b3a2-02bb48f8c230", APIVersion:"apps/v1", ResourceVersion:"132690686", FieldPath:""}): type: 'Normal' reason: 'ScalingReplicaSet' Scaled down replica set coredns-6cbb6646c9 to 2
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.
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: