Opomba prevod: To je prevod javne obdukcije iz inženirskega bloga podjetja Predgovor. Opisuje težavo s conntrackom v gruči Kubernetes, ki je povzročila delne izpade nekaterih proizvodnih storitev.
Ta članek je lahko koristen za tiste, ki želijo izvedeti nekaj več o posmrtnih ostankih ali preprečiti morebitne težave z DNS v prihodnosti.
To ni DNS
Ne more biti DNS
Bil je DNS
Nekaj o obdukciji in postopkih v Preply
Obdukcija opisuje okvaro ali nek dogodek v proizvodnji. Obdukcija vključuje časovnico dogodkov, vpliv na uporabnika, osnovni vzrok, izvedene ukrepe in pridobljene izkušnje.
Na tedenskih srečanjih s pico, med tehnično ekipo, delimo različne informacije. Eden najpomembnejših delov tovrstnih srečanj so obdukcije, ki jih največkrat spremlja predstavitev z diapozitivi in poglobljena analiza dogodka. Čeprav po obdukciji ne ploskamo, poskušamo razviti kulturo "brez obtoževanja" (neoporečna kultura). Verjamemo, da lahko pisanje in predstavitev posmrtnih ostankov nam (in drugim) pomaga preprečiti podobne incidente v prihodnosti, zato jih delimo.
Posamezniki, vpleteni v incident, bi morali čutiti, da lahko podrobno spregovorijo brez strahu pred kaznijo ali maščevanjem. Brez zamere! Pisanje obdukcije ni kazen, ampak priložnost za učenje za celotno podjetje.
Na kratko: Delna nedosegljivost DNS (26 min) za nekatere storitve v gruči Kubernetes
Vpliv: 15000 izgubljenih dogodkov za storitve A, B in C
Glavni vzrok: Kube-proxy ni mogel pravilno odstraniti starega vnosa iz tabele conntrack, zato so se nekatere storitve še vedno poskušale povezati z neobstoječimi sklopi
Sprožilec: Zaradi majhne obremenitve znotraj gruče Kubernetes je CoreDNS-autoscaler zmanjšal število podov v razmestitvi s treh na dva
raztopina: Naslednja uvedba aplikacije je sprožila ustvarjanje novih vozlišč, CoreDNS-autoscaler je dodal več podov, ki so služili gruči, kar je povzročilo prepis tabele conntrack
Zaznavanje: Prometheus monitoring je zaznal veliko število napak 5xx za storitve A, B in C in sprožil klic dežurnim inženirjem
5xx napak v Kibani
Dejavnost
učinek
Tip
Odgovorni
Naloga
Onemogoči samodejno skaliranje za CoreDNS
preprečili
Amet U.
DEVOPS-695
Nastavite strežnik DNS za predpomnjenje
zmanjšanje
Max V.
DEVOPS-665
Nastavite nadzor conntrack
preprečili
Amet U.
DEVOPS-674
Naučena lekcija
Kaj je šlo dobro:
Spremljanje je dobro delovalo. Odziv je bil hiter in organiziran
Da bi zmanjšali porabo procesorja, jedro Linuxa uporablja nekaj, kar se imenuje conntrack. Skratka, to je pripomoček, ki vsebuje seznam zapisov NAT, ki so shranjeni v posebni tabeli. Ko naslednji paket prispe iz iste skupine v isto enoto kot prej, končni naslov IP ne bo ponovno izračunan, ampak bo vzet iz tabele conntrack.
Kako deluje conntrack
Rezultati
To je bil primer enega od naših posmrtnih ostankov z nekaj uporabnimi povezavami. Natančneje v tem članku delimo informacije, ki so lahko koristne za druga podjetja. Zato se ne bojimo delati napak in zato javno objavimo enega od naših posmrtnih ostankov. Tu je še nekaj zanimivih javnih posmrtnih ostankov: