Pirsgirêkên DNS-ê li Kubernetes. Postmortem giştî

Not werger: Ev wergerek postmortemek giştî ya ji bloga endezyariya pargîdaniyê ye Pêşandin. Ew pirsgirêkek bi kontrakê di komek Kubernetes de vedibêje, ku bû sedema betalbûna qismî ya hin karûbarên hilberînê.

Dibe ku ev gotar ji bo kesên ku dixwazin di derbarê paşerojê de hinekî bêtir fêr bibin an jî di pêşerojê de hin pirsgirêkên potansiyel ên DNS-ê asteng bikin kêrhatî be.

Pirsgirêkên DNS-ê li Kubernetes. Postmortem giştî
Ev ne DNS ye
Ew nikare DNS be
Ew DNS bû

Piçekî li ser postmortems û pêvajoyên li Preply

Postmortem xeletiyek an bûyerek di hilberînê de vedibêje. Postmortem rêzek bûyeran, bandora bikarhêner, sedema bingehîn, çalakiyên hatine girtin û dersên fêrbûyî vedihewîne.

SRE digere

Di civînên heftane yên bi pizza re, di nav tîmê teknîkî de, em agahdariya cihêreng parve dikin. Yek ji beşên herî girîng ên hevdîtinên bi vî rengî, piştî mirinan e, ku pirî caran bi pêşandanek bi slaytan û analîzek kûrtir a bûyerê re tê. Her çend em piştî mirinê li çepikan nexin jî, em hewl didin ku çanda "bê sûcdar" pêş bixin (çanda bê guneh). Em bawer dikin ku nivîsandin û pêşkêşkirina postmorteman dikare alîkariya me (û yên din) bike ku pêşî li bûyerên bi vî rengî di pêşerojê de bigirin, ji ber vê yekê em wan parve dikin.

Kesên ku di bûyerekê de cih digirin divê hîs bikin ku bêyî tirsa ji cezakirin û tolhildanê dikarin bi hûrgulî biaxivin. Ne sûcdar! Nivîsandina postmortem ne ceza ye, lê ji bo tevahiya pargîdaniyê derfetek fêrbûnê ye.

CALMS & DevOps biparêzin: S ji bo Parvekirinê ye

Pirsgirêkên DNS-ê li Kubernetes. Postmortem

Rojek: 28.02.2020

Nivîskar: Amet U., Andrey S., Igor K., Alexey P.

Cî: Qediya

Bi kurt Ji bo hin karûbarên di koma Kubernetes de tunebûna DNS ya qismî (26 hûrdem).

Tesîr: 15000 bûyer ji bo karûbarên A, B û C winda bûn

Sedema bingehîn: Kube-proxy nekarî bi rêkûpêk têketinek kevn ji tabloya kontrakê rake, ji ber vê yekê hin karûbar hîn jî hewl didin ku bi podên neheyî ve girêbidin.

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

Kişok: Ji ber barkirina hindik a di hundurê koma Kubernetes de, CoreDNS-autoscaler hejmara podên di bicîhkirinê de ji sê-duyan kêm kir.

çareseriya: Dabeşkirina paşîn a serîlêdanê dest bi çêkirina girêkên nû kir, CoreDNS-autoscaler bêtir pods zêde kir ku ji komê re xizmet bike, ku ev yek ji nû ve nivîsandina tabloya kontrakê provoke kir.

Servekirin: Çavdêriya Prometheus ji bo karûbarên A, B û C hejmareke mezin ji xeletiyên 5xx tesbît kir û bangek ji endezyarên li ser kar re kir.

Pirsgirêkên DNS-ê li Kubernetes. Postmortem giştî
Di Kibana de xeletiyên 5xx

Actions

tesîr
Tîpa
Berpirsîyare
Armanc

Autoscaler ji bo CoreDNS neçalak bike
asteng kirin
Amet U.
DEVOPS-695

Pêşkêşkerek DNS-a caching saz bikin
kêmbûn
Max V.
DEVOPS-665

Set up çavdêrîkirina contrack
asteng kirin
Amet U.
DEVOPS-674

Dersên hînbûyî

Çi baş bû:

  • Çavdêrî baş xebitî. Bersiv bi lez û organîze bû
  • Me ti sînor li ser girêkan nexist

Çi xelet bû:

  • Hîn jî sedema bingehîn a rastîn nayê zanîn, mîna xeletiyek taybetî di contrack
  • Hemî kiryar tenê encaman rast dikin, ne sedema bingehîn (çeşît)
  • Me dizanibû ku zû an dereng dibe ku pirsgirêkên me bi DNS re hebin, lê me pêşî li peywiran negirt

Cihê ku em bi şens bûn:

  • Sazkirina paşîn ji hêla CoreDNS-autoscaler ve hate destpêkirin, ku tabloya pêwendiyê li ser nivîsand.
  • Vê xeletiyê tenê bandor li hin karûbaran kir

Demjimêr (EET)

Время
tesîr

22:13
CoreDNS-autoscaler hejmara podan ji sê ji du kêm kir

22:18
Endezyarên li ser peywirê dest bi wergirtina bangên ji pergala şopandinê kirin

22:21
Endezyarên li ser peywirê dest bi lêgerîna sedema xeletiyan kirin.

22:39
Endezyarên li ser peywirê dest bi vegerandina yek ji karûbarên herî paşîn li guhertoya berê kirin

22:40
5xx xeletiyên xuya nekirin, rewş aram bûye

  • Dema tespîtkirinê: 4 min
  • Dem berî çalakiyê: 21 min
  • Dema rastkirinê: 1 min

Ð "опол ниÑ, ÐμÐ »ÑŒÐ½Ð ° Ñ Ð¸Ð½Ñ" Ð¾Ñ € Ñ † мРli DN

Ji bo kêmkirina karanîna CPU, kernel Linux tiştek bi navê conntrack bikar tîne. Bi kurtasî, ev amûrek e ku navnîşek tomarên NAT-ê yên ku di tabloyek taybetî de têne hilanîn vedihewîne. Dema ku pakêta din ji heman podê bigihîje heman podê ya berê, navnîşana IP-ya paşîn dê ji nû ve neyê hesibandin, lê dê ji tabloya kontrakê were girtin.
Pirsgirêkên DNS-ê li Kubernetes. Postmortem giştî
Contrack çawa dixebite

Encam

Ev mînakek yek ji postmortemên me bi hin girêdanên kêrhatî bû. Bi taybetî di vê gotarê de, em agahdariya ku dibe ku ji pargîdaniyên din re kêrhatî be parve dikin. Ji ber vê yekê em ji xeletiyan natirsin û ji ber vê yekê em yek ji postmortemên xwe eşkere dikin. Li vir çend postmortemên gelemperî yên balkêş hene:

Source: www.habr.com

Add a comment