Мушкилот бо DNS дар Kubernetes. Баъди марги ҷамъиятӣ

Шарҳ тарҷума: Ин тарҷумаи постмортеми оммавӣ аз блоги муҳандисии ширкат аст Пештар. Он мушкилотро бо пайвастшавӣ дар кластери Kubernetes тавсиф мекунад, ки ба қисман қатъ шудани баъзе хидматҳои истеҳсолӣ оварда расонд.

Ин мақола метавонад барои онҳое, ки мехоҳанд дар бораи постмортемҳо каме бештар маълумот гиранд ё дар оянда баъзе мушкилоти эҳтимолии DNS-ро пешгирӣ кунанд, муфид бошад.

Мушкилот бо DNS дар Kubernetes. Баъди марги ҷамъиятӣ
Ин DNS нест
Он наметавонад DNS бошад
Ин DNS буд

Каме дар бораи постмортемҳо ва равандҳо дар Preply

Пастмортем хатоги ё ягон ҳодисаро дар истеҳсолот тавсиф мекунад. Пас аз марг ҷадвали рӯйдодҳо, таъсири корбар, сабабҳои аслӣ, амалҳои андешидашуда ва дарсҳои омӯхташударо дар бар мегирад.

Ҷустуҷӯи SRE

Дар вохӯриҳои ҳарҳафтаина бо пицца дар байни дастаи техникӣ мо маълумоти гуногунро мубодила мекунем. Яке аз бахшҳои муҳими ин гуна мулоқотҳо пас аз марг аст, ки бештар бо муаррифӣ бо слайдҳо ва таҳлили амиқи ҳодиса ҳамроҳ мешавад. Гарчанде ки мо пас аз марг кафкӯбӣ намекунем, мо мекӯшем, ки фарҳанги «бегуноҳ»-ро инкишоф диҳем (маданияти беайб). Мо боварӣ дорем, ки навиштан ва пешниҳоди постмортем метавонад ба мо (ва дигарон) дар пешгирии ҳодисаҳои шабеҳ дар оянда кӯмак кунад, аз ин рӯ мо онҳоро мубодила мекунем.

Шахсоне, ки дар ходиса иштирок доранд, бояд хис кунанд, ки бе тарси чазо ва чазо ба таври муфассал сухан гуфта метавонанд. Айб нест! Навиштани пас аз марг ҷазо нест, балки имконияти омӯзиш барои тамоми ширкат аст.

CALMS & DevOps-ро нигоҳ доред: S барои мубодила аст

Мушкилот бо DNS дар Kubernetes. Баъди марг

Санаи: 28.02.2020

Муаллифон: Амет У., Андрей С., Игорь К., Алексей П.

Status: Ба охир расид

Ҷаҳиш ба: Қисман дастрас набудани DNS (26 дақиқа) барои баъзе хидматҳо дар кластери Kubernetes

Таъсир: 15000 ҳодисаҳо барои хидматҳои A, B ва C гум шуданд

Нахустсабаб: Kube-proxy натавонист вуруди кӯҳнаро аз ҷадвали пайвастшавӣ дуруст хориҷ кунад, аз ин рӯ баъзе хидматҳо то ҳол кӯшиш мекарданд, ки ба подкладкаҳои мавҷуда пайваст шаванд

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

Триггер: Аз сабаби кам будани сарбории дохили кластери Kubernetes, CoreDNS-autoscaler шумораи подкҳоро дар ҷойгиркунӣ аз се то ду кам кард

ҳалли: Ҷойгиркунии навбатии барнома эҷоди гиреҳҳои навро оғоз кард, CoreDNS-autoscaler барои хидмат ба кластер подкҳои бештар илова кард, ки боиси дубора навиштани ҷадвали conntrack шуд.

Муайянкунӣ: Мониторинги Prometheus шумораи зиёди хатогиҳои 5xx-ро барои хидматҳои A, B ва C муайян кард ва ба муҳандисони навбатдор занг зад.

Мушкилот бо DNS дар Kubernetes. Баъди марги ҷамъиятӣ
Хатогиҳои 5xx дар Кибана

Амалиётҳо

таъсир
Намуди
Масъулият
Мақсад

Autoscaler барои CoreDNS хомӯш кунед
пешгирӣ кард
Амет У.
ДЕВОПС-695

Сервери кэшкунии DNS-ро насб кунед
кам кардан
Макс В.
ДЕВОПС-665

Мониторинги пайвастро танзим кунед
пешгирӣ кард
Амет У.
ДЕВОПС-674

Дарсхои омухташуда

Чӣ хуб гузашт:

  • Мониторинг хуб кор кард. Ҷавоб зуд ва муташаккил буд
  • Мо дар гиреҳҳо ягон маҳдудият нагузоштаем

Чӣ хато буд:

  • Ҳанӯз маълум нест сабаби аслии аслӣ, монанд ба хатои мушаххас дар муқобил
  • Ҳама амалҳо танҳо оқибатҳоро ислоҳ мекунанд, на сабаби аслӣ (хато)
  • Мо медонистем, ки дер ё зуд мо бо DNS мушкилот дошта бошем, аммо мо вазифаҳоро авлавият надодем

Дар куҷо бахти мо расид:

  • Ҷойгиркунии навбатӣ аз ҷониби CoreDNS-autoscaler оғоз шуд, ки ҷадвали пайвасткуниро аз нав навишт
  • Ин хато танҳо ба баъзе хидматҳо таъсир расонд

Ҷадвали вақт (EET)

Вақт
таъсир

22:13
CoreDNS-autoscaler шумораи подкҳоро аз се ба ду кам кард

22:18
Инженерони навбатдор аз системаи назорат занг задан гирифтанд

22:21
Инженерони навбатдор ба фахмидани сабаби хатогихо шуруъ карданд.

22:39
Муҳандисони навбатдор ба баргардонидани яке аз хидматҳои охирин ба версияи қаблӣ шурӯъ карданд

22:40
5xx хатогиҳо пайдо шуданд, вазъият мӯътадил шуд

  • Вақт барои ошкор кардан: 4 min
  • Вақт пеш аз амал: 21 min
  • Вақти ислоҳ: 1 min

маълумоти иловагӣ

Барои кам кардани истифодаи CPU, ядрои Linux чизеро истифода мебарад, ки conntrack ном дорад. Хулоса, ин утилитаест, ки рӯйхати сабтҳои NAT-ро дар бар мегирад, ки дар ҷадвали махсус нигоҳ дошта мешаванд. Ҳангоме ки бастаи навбатӣ аз ҳамон як қуттии пештара ба ҳамон подкаст мерасад, суроғаи ниҳоии IP дубора ҳисоб карда намешавад, балки аз ҷадвали conntrack гирифта мешавад.
Мушкилот бо DNS дар Kubernetes. Баъди марги ҷамъиятӣ
Чӣ тавр contrack кор мекунад

Натиҷаҳо

Ин як мисоли яке аз постмортемҳои мо бо истинодҳои муфид буд. Махсусан дар ин мақола, мо маълумотеро мубодила мекунем, ки метавонанд барои ширкатҳои дигар муфид бошанд. Аз ин рӯ, мо аз хато кардан наметарсем ва аз ин рӯ, мо яке аз пас аз марги худро оммавӣ мегардонем. Инҳоянд чанде аз фавти оммавии ҷолибтар:

Манбаъ: will.com

Илова Эзоҳ