Probleme met DNS in Kubernetes. Openbare nadoodse ondersoek

Let wel. vertaling: Dit is 'n vertaling van 'n openbare nadoodse ondersoek vanaf die maatskappy se ingenieursblog Berei voor. Dit beskryf 'n probleem met verbinding in 'n Kubernetes-kluster, wat gelei het tot gedeeltelike stilstand van sommige produksiedienste.

Hierdie artikel kan nuttig wees vir diegene wat 'n bietjie meer wil leer oor nadoodse ondersoeke of 'n paar potensiële DNS-probleme in die toekoms wil voorkom.

Probleme met DNS in Kubernetes. Openbare nadoodse ondersoek
Dit is nie DNS nie
Dit kan nie DNS wees nie
Dit was DNS

'n Bietjie oor nadoodse ondersoeke en prosesse in Preply

’n Nadoodse ondersoek beskryf ’n wanfunksie of een of ander gebeurtenis in produksie. Die nadoodse ondersoek sluit 'n tydlyn van gebeure, gebruikerimpak, hoofoorsaak, aksies wat geneem is en lesse geleer in.

Opsoek na SRE

By weeklikse vergaderings met pizza, onder die tegniese span, deel ons verskeie inligting. Een van die belangrikste dele van sulke vergaderings is nadoodse ondersoeke, wat meestal gepaard gaan met 'n aanbieding met skyfies en 'n meer in-diepte ontleding van die voorval. Al klap ons nie na nadoodse ondersoeke nie, probeer ons 'n kultuur van "geen blaam" ontwikkel (onberispelike kultuur). Ons glo dat die skryf en aanbied van nadoodse ondersoeke ons (en ander) kan help om soortgelyke voorvalle in die toekoms te voorkom, en daarom deel ons dit.

Individue wat by 'n voorval betrokke is, moet voel dat hulle in detail kan praat sonder vrees vir straf of vergelding. Geen skuld nie! Om 'n nadoodse ondersoek te skryf is nie 'n straf nie, maar 'n leergeleentheid vir die hele maatskappy.

Keep CALMS & DevOps: S is vir deling

Probleme met DNS in Kubernetes. Nadoodse ondersoek

datum: 28.02.2020

Skrywers: Amet U., Andrey S., Igor K., Alexey P.

Status: Klaar

kortliks: Gedeeltelike DNS-onbeskikbaarheid (26 min) vir sommige dienste in die Kubernetes-groepering

Invloed: 15000 XNUMX geleenthede verloor vir dienste A, B en C

Kernoorsaak: Kube-proxy kon nie 'n ou inskrywing korrek uit die verbindingstabel verwyder nie, so sommige dienste het steeds probeer koppel aan nie-bestaande peule

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

Sneller: As gevolg van die lae vrag binne die Kubernetes-groepering, het CoreDNS-autoscaler die aantal peule in die ontplooiing van drie na twee verminder

oplossing: Die volgende ontplooiing van die toepassing het die skepping van nuwe nodusse begin, CoreDNS-autoscaler het meer peule bygevoeg om die groep te bedien, wat 'n herskrywing van die verbindingstabel uitgelok het

Bespeuring: Prometheus-monitering het 'n groot aantal 5xx-foute vir dienste A, B en C opgespoor en 'n oproep na die aan diens ingenieurs begin

Probleme met DNS in Kubernetes. Openbare nadoodse ondersoek
5xx foute in Kibana

Aktiwiteit

effek
Tipe
Verantwoordelik
Taak

Deaktiveer autoscaler vir CoreDNS
voorkom
Amet U.
DEVOPS-695

Stel 'n kas-DNS-bediener op
afneem
Max V.
DEVOPS-665

Stel verbindingsmonitering op
voorkom
Amet U.
DEVOPS-674

Lesse geleer

Wat goed gegaan het:

  • Die monitering het goed gewerk. Die reaksie was vinnig en georganiseerd
  • Ons het geen limiete op die nodusse getref nie

Wat was fout:

  • Nog onbekend werklike oorsaak, soortgelyk aan spesifieke fout in verband
  • Alle aksies korrigeer slegs die gevolge, nie die oorsaak nie (fout)
  • Ons het geweet dat ons vroeër of later probleme met DNS kan hê, maar ons het nie die take geprioritiseer nie

Waar ons gelukkig was:

  • Die volgende ontplooiing is geaktiveer deur CoreDNS-autoscaler, wat die verbindingstabel oorskryf het
  • Hierdie fout het slegs sekere dienste beïnvloed

Tydlyn (EET)

Tyd
effek

22:13
CoreDNS-autoscaler het die aantal peule van drie na twee verminder

22:18
Ingenieurs aan diens het oproepe van die moniteringstelsel begin ontvang

22:21
Die ingenieurs aan diens het begin om die oorsaak van die foute uit te vind.

22:39
Ingenieurs aan diens het een van die nuutste dienste na die vorige weergawe begin terugrol

22:40
5xx-foute het opgehou om te verskyn, die situasie het gestabiliseer

  • Tyd tot opsporing: 4 min
  • Tyd voor aksie: 21 min
  • Tyd om reg te maak: 1 min

bykomende inligting

Om SVE-gebruik te verminder, gebruik die Linux-kern iets wat conntrack genoem word. Kortom, dit is 'n hulpprogram wat 'n lys van NAT-rekords bevat wat in 'n spesiale tabel gestoor word. Wanneer die volgende pakkie van dieselfde peul na dieselfde peul as voorheen aankom, sal die finale IP-adres nie herbereken word nie, maar uit die verbindingstabel geneem word.
Probleme met DNS in Kubernetes. Openbare nadoodse ondersoek
Hoe verbinding werk

Resultate van

Dit was 'n voorbeeld van een van ons nadoodse ondersoeke met 'n paar nuttige skakels. Spesifiek in hierdie artikel deel ons inligting wat nuttig kan wees vir ander maatskappye. Dis hoekom ons nie bang is om foute te maak nie en daarom maak ons ​​een van ons nadoodse ondersoeke openbaar. Hier is 'n paar meer interessante openbare nadoodse ondersoeke:

Bron: will.com

Voeg 'n opmerking