Kubernetesтеги DNS менен көйгөйлөр. Коомдук өлүмдөн кийин

Эскертүү котормо: Бул компаниянын инженердик блогунан ачык өлгөндөн кийинки котормосу алдын ала. Бул кээ бир өндүрүш кызматтарынын жарым-жартылай токтоп калышына алып келген Kubernetes кластериндеги байланыш көйгөйүн сүрөттөйт.

Бул макала постмортемдер жөнүндө бир аз көбүрөөк билгиси келгендер үчүн пайдалуу болушу мүмкүн же келечекте кээ бир мүмкүн болуучу DNS көйгөйлөрүнүн алдын алуу.

Kubernetesтеги DNS менен көйгөйлөр. Коомдук өлүмдөн кийин
Бул DNS эмес
Бул DNS болушу мүмкүн эмес
Бул DNS болчу

Preplyдеги өлүмдөн кийинки процесстер жана процесстер жөнүндө бир аз

Постмортем өндүрүштөгү бузулууну же кандайдыр бир окуяны сүрөттөйт. Постмортем окуялардын хронологиясын, колдонуучунун таасирин, түпкү себебин, жасалган аракеттерди жана алынган сабактарды камтыйт.

SRE изделүүдө

Пицца менен жума сайын болгон жолугушууларда техникалык топтун арасында биз ар кандай маалыматтарды бөлүшөбүз. Мындай жолугушуулардын эң маанилүү бөлүктөрүнүн бири болуп өлгөндөн кийинки изилдөөлөр саналат, алар көбүнчө слайддар менен презентация жана окуяны тереңирээк талдоо менен коштолот. Өлгөндөн кийин кол чаппасак да, “күнөө жок” маданиятын өнүктүрүүгө аракет кылабыз (кемчиликсиз маданият). Постмортемдерди жазуу жана көрсөтүү бизге (жана башкаларга) келечекте ушундай окуялардын алдын алууга жардам берет деп ишенебиз, ошондуктан биз аларды бөлүшүп жатабыз.

Окуяга катышкан адамдар жазадан же жазадан коркпостон, майда-чүйдөсүнө чейин сүйлөй аларын сезиши керек. Айып жок! Постмортем жазуу жаза эмес, бүткүл компания үчүн окуу мүмкүнчүлүгү.

Keep CALMS & DevOps: S бөлүшүү үчүн

Kubernetesтеги DNS менен көйгөйлөр. Постмортем

датасы: 28.02.2020

Авторлор: Амет У., Андрей С., Игорь К., Алексей П.

Статус: Бүттү

кыскача: Kubernetes кластериндеги кээ бир кызматтар үчүн жарым-жартылай DNS жеткиликсиздиги (26 мүн.).

Таасири: А, В жана С кызматтары үчүн 15000 XNUMX окуя жоголду

Негизги себеп: Kube-прокси эски жазууну conntrack жадыбалынан туура алып сала алган жок, андыктан кээ бир кызматтар дагы эле жок подкасттарга туташууга аракет кылып жатышат

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 мониторинги A, B жана C кызматтары үчүн көп сандагы 5xx каталарын аныктап, нөөмөттөгү инженерлерди чакырды.

Kubernetesтеги DNS менен көйгөйлөр. Коомдук өлүмдөн кийин
Кибанадагы 5xx катасы

Действия

таасири
түрү
Жооптуу
маселе

CoreDNS үчүн автоматтык масштабды өчүрүү
алдын алды
Амет У.
DEVOPS-695

Кэштөө DNS серверин орнотуңуз
азайтуу
Макс В.
DEVOPS-665

Conntrack мониторинг орнотуу
алдын алды
Амет У.
DEVOPS-674

Үйрөнгөн сабактар

Эмнеси жакшы болду:

  • Мониторинг жакшы иштеди. Жооп тез жана уюшкандыкта болду
  • Биз түйүндөр боюнча эч кандай чектөөлөрдү койгон жокпуз

Эмне болду:

  • Окшош, дагы эле белгисиз чыныгы түпкү себеби конкреттүү ката каршы
  • Бардык аракеттер түпкү себебин эмес, кесепеттерин гана оңдойт (ката)
  • Биз эртеби-кечпи DNS менен көйгөйлөр болушу мүмкүн экенин билген, бирок биз милдеттерди биринчи орунга койгон жокпуз

Кайдан бактыбыз:

  • Кийинки жайгаштыруу Conntrack таблицасын кайра жазган CoreDNS-autoscaler тарабынан ишке ашырылган
  • Бул мүчүлүштүк кээ бир кызматтарга гана таасирин тийгизди

Убакыт тилкеси (EET)

Время
таасири

22:13
CoreDNS-автоматтык масштабдоочу поддондордун санын үчтөн экиге кыскартты

22:18
Мониторинг системасынан нөөмөттөгү инженерлер чалууларды ала башташты

22:21
Нөөмөттө турган инженерлер каталардын себебин аныктай башташты.

22:39
Нөөмөттө турган инженерлер акыркы кызматтардын бирин мурунку версияга кайтара башташты

22:40
5xx каталары көрүнбөй калды, абал турукташып калды

  • Аныктоо убактысы: 4 мүнөт
  • Аракетке чейинки убакыт: 21 мүнөт
  • Оңдоо убактысы: 1 мүнөт

кошумча маалымат

CPU колдонууну азайтуу үчүн, Linux ядросу conntrack деп аталган нерсени колдонот. Кыскача айтканда, бул атайын таблицада сакталган NAT жазууларынын тизмесин камтыган утилита. Кийинки пакет мурункудай эле подколькодон келгенде, акыркы IP дареги кайра эсептелбейт, бирок conntrack таблицасынан алынат.
Kubernetesтеги DNS менен көйгөйлөр. Коомдук өлүмдөн кийин
Conntrack кантип иштейт

натыйжалары

Бул кээ бир пайдалуу шилтемелер менен биздин постмортемдердин биринин мисалы болгон. Тактап айтканда, бул макалада биз башка компаниялар үчүн пайдалуу болушу мүмкүн болгон маалыматты бөлүшөбүз. Ошон үчүн биз ката кетирүүдөн коркпойбуз жана өлүмдөн кийинки текшерүүлөрүбүздүн бирин ачык жарыялайбыз. Бул жерде дагы бир нече кызыктуу коомдук постмортемдер:

Source: www.habr.com

Комментарий кошуу