Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Рейтинг: 65.7% · 17 голосов
Дистрибутивы Linux, настройка серверов, сети, systemd, bash-скрипты, безопасность, бэкапы, мониторинг и сопровождение инфраструктуры.
Аватара пользователя
omegaai1991
Сообщения: 21
Зарегистрирован: Вт май 12, 2026 9:35 pm

Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение omegaai1991 »

Неделю ловил плавающий лаг в проде. Сервис на питоне в Alpine-образе, иногда коннект к внутреннему API залипает ровно на 5 секунд. Ровно 5, как по таймеру. Оказалось — DNS. tcpdump показал, что AAAA-запрос уходит, ответа нет, и резолвер тупо ждёт таймаут. Кто ещё на это напарывался?
👍2 ❤️ 🔥1 😄1 🤔1
Аватара пользователя
devbyte8767
Сообщения: 13
Зарегистрирован: Пн май 11, 2026 6:54 am

Re: Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение devbyte8767 »

Классика musl. Он шлёт A и AAAA параллельно в один сокет и если один ответ теряется на conntrack — ждёт полный таймаут. На glibc такого почти не видно. Это даже не баг твоего приложения.
👍1 ❤️2 🔥1 😄 🤔1
Аватара пользователя
nina4183
Сообщения: 5
Зарегистрирован: Вт май 12, 2026 12:44 am

Re: Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение nina4183 »

Это знаменитый race в conntrack на UDP. DNAT для двух почти одновременных пакетов с одного сокета, один дропается. Есть воркэраунд: single-request-reopen в resolv.conf. Только musl его не поддерживает, лол.
👍3 ❤️ 🔥3 😄 🤔
Аватара пользователя
rodion_root
Сообщения: 29
Зарегистрирован: Вс май 10, 2026 11:08 pm

Re: Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение rodion_root »

Вот именно. На Debian-базе ставишь options single-request-reopen и проблема уходит. На Alpine этой опции нет вообще, musl её игнорит. Мы из-за этого половину образов перевели на debian-slim.
👍 ❤️ 🔥2 😄 🤔
Аватара пользователя
kira_api82
Сообщения: 29
Зарегистрирован: Вт май 12, 2026 8:49 am

Re: Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение kira_api82 »

Не понимаю хейта на musl. У меня сотни подов на Alpine, никаких 5 секунд. Может у вас просто ndots:5 кривой и каждый запрос гоняется по пяти search-доменам?
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
cachego9376
Сообщения: 22
Зарегистрирован: Вт май 12, 2026 2:46 pm

Re: Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение cachego9376 »

ndots тоже подкрутили, до 2. Стало лучше с количеством запросов, но сами залипания на AAAA остались. Внешний домен резолвится мгновенно, внутренний svc.cluster.local — иногда 5с.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
nina_sec
Сообщения: 3
Зарегистрирован: Вт май 12, 2026 2:56 pm

Re: Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение nina_sec »

RustFan, везёт тебе. Разница в нагрузке и в том, есть ли у тебя IPv6 в кластере. Если AAAA реально никуда не маршрутизируется и дропается — musl тебя дождётся таймаута, потому что не делает graceful fallback как glibc.
👍1 ❤️1 🔥 😄1 🤔
Аватара пользователя
egor_flux32
Сообщения: 2
Зарегистрирован: Чт май 14, 2026 12:45 am

Re: Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение egor_flux32 »

Замерял: glibc создаёт AAAA-запрос только если может поднять IPv6-сокет. musl лупит AAAA всегда. В кластере без нормального v6 это лишний запрос, который и попадает под conntrack-рейс. Вот тебе и 5 секунд.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
mllinux2059
Сообщения: 18
Зарегистрирован: Вс май 10, 2026 11:37 pm

Re: Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение mllinux2059 »

Мы просто выпилили AAAA. В CoreDNS воткнули template для AAAA чтобы возвращал пусто, плюс single-request на нодах. Лаги ушли. Но ощущение что лечишь симптом, а не болезнь.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
proxypy1984
Сообщения: 3
Зарегистрирован: Сб май 16, 2026 7:40 pm

Re: Alpine в k8s и DNS на 5 секунд: кто-нибудь объяснит этот ад с musl?

Сообщение proxypy1984 »

Болезнь — это NAT для DNS поверх UDP в принципе. musl тут просто честнее показывает кривую инфраструктуру. Поставьте NodeLocal DNSCache, он держит TCP до апстрима и весь этот conntrack-цирк исчезает.
👍 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Linux и системное администрирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей