ProHoster > Blog > башкаруу > Kubernetesтеги DNS менен көйгөйлөр. Коомдук өлүмдөн кийин
Kubernetesтеги DNS менен көйгөйлөр. Коомдук өлүмдөн кийин
Эскертүү котормо: Бул компаниянын инженердик блогунан ачык өлгөндөн кийинки котормосу алдын ала. Бул кээ бир өндүрүш кызматтарынын жарым-жартылай токтоп калышына алып келген Kubernetes кластериндеги байланыш көйгөйүн сүрөттөйт.
Бул макала постмортемдер жөнүндө бир аз көбүрөөк билгиси келгендер үчүн пайдалуу болушу мүмкүн же келечекте кээ бир мүмкүн болуучу DNS көйгөйлөрүнүн алдын алуу.
Бул DNS эмес
Бул DNS болушу мүмкүн эмес
Бул DNS болчу
Preplyдеги өлүмдөн кийинки процесстер жана процесстер жөнүндө бир аз
Постмортем өндүрүштөгү бузулууну же кандайдыр бир окуяны сүрөттөйт. Постмортем окуялардын хронологиясын, колдонуучунун таасирин, түпкү себебин, жасалган аракеттерди жана алынган сабактарды камтыйт.
Пицца менен жума сайын болгон жолугушууларда техникалык топтун арасында биз ар кандай маалыматтарды бөлүшөбүз. Мындай жолугушуулардын эң маанилүү бөлүктөрүнүн бири болуп өлгөндөн кийинки изилдөөлөр саналат, алар көбүнчө слайддар менен презентация жана окуяны тереңирээк талдоо менен коштолот. Өлгөндөн кийин кол чаппасак да, “күнөө жок” маданиятын өнүктүрүүгө аракет кылабыз (кемчиликсиз маданият). Постмортемдерди жазуу жана көрсөтүү бизге (жана башкаларга) келечекте ушундай окуялардын алдын алууга жардам берет деп ишенебиз, ошондуктан биз аларды бөлүшүп жатабыз.
Окуяга катышкан адамдар жазадан же жазадан коркпостон, майда-чүйдөсүнө чейин сүйлөй аларын сезиши керек. Айып жок! Постмортем жазуу жаза эмес, бүткүл компания үчүн окуу мүмкүнчүлүгү.
Авторлор: Амет У., Андрей С., Игорь К., Алексей П.
Статус: Бүттү
кыскача: Kubernetes кластериндеги кээ бир кызматтар үчүн жарым-жартылай DNS жеткиликсиздиги (26 мүн.).
Таасири: А, В жана С кызматтары үчүн 15000 XNUMX окуя жоголду
Негизги себеп: Kube-прокси эски жазууну conntrack жадыбалынан туура алып сала алган жок, андыктан кээ бир кызматтар дагы эле жок подкасттарга туташууга аракет кылып жатышат
Триггер: Kubernetes кластеринин ичиндеги жүктүн аздыгынан, CoreDNS-autoscaler жайгаштыруудагы поддондордун санын үчтөн экиге чейин кыскартты
чечим: Тиркеменин кийинки жайылтылышы жаңы түйүндөрдү түзүүнү демилгеледи, CoreDNS-autoscaler кластерге кызмат кылуу үчүн кошумча поддондорду кошту, бул conntrack таблицасын кайра жазууга түрткү болду.
Аныктоо: Prometheus мониторинги A, B жана C кызматтары үчүн көп сандагы 5xx каталарын аныктап, нөөмөттөгү инженерлерди чакырды.
Кибанадагы 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 мүнөт
кошумча маалымат
CoreDNS журналдары:
I0228 20:13:53.507780 1 event.go:221] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"kube-system", Name:"coredns", UID:"2493eb55-3dc0-11ea-b3a2-02bb48f8c230", APIVersion:"apps/v1", ResourceVersion:"132690686", FieldPath:""}): type: 'Normal' reason: 'ScalingReplicaSet' Scaled down replica set coredns-6cbb6646c9 to 2
CPU колдонууну азайтуу үчүн, Linux ядросу conntrack деп аталган нерсени колдонот. Кыскача айтканда, бул атайын таблицада сакталган NAT жазууларынын тизмесин камтыган утилита. Кийинки пакет мурункудай эле подколькодон келгенде, акыркы IP дареги кайра эсептелбейт, бирок conntrack таблицасынан алынат.
Conntrack кантип иштейт
натыйжалары
Бул кээ бир пайдалуу шилтемелер менен биздин постмортемдердин биринин мисалы болгон. Тактап айтканда, бул макалада биз башка компаниялар үчүн пайдалуу болушу мүмкүн болгон маалыматты бөлүшөбүз. Ошон үчүн биз ката кетирүүдөн коркпойбуз жана өлүмдөн кийинки текшерүүлөрүбүздүн бирин ачык жарыялайбыз. Бул жерде дагы бир нече кызыктуу коомдук постмортемдер: