tgoop.com/devopslib/82
Last Update:
🚨 Непредсказуемый баг из-за таймаута DNS в Kubernetes
На днях столкнулся с очень странным поведением: один из микросервисов начал периодически отваливаться по таймауту при обращении к другому сервису через DNS. Причём — только в кластере, локально всё ок.
🧩 Разгадка оказалась в CoreDNS и его настройках. По умолчанию, в kubelet --resolv-conf
указывает на /etc/resolv.conf
, где могут стоять опции типа options timeout:5 attempts:3
. Это значит, что при проблемах с DNS один запрос может занимать до 15 секунд (!) прежде чем вернётся ошибка. А если у тебя таймаут в приложении стоит 10 секунд — получай баг с мордой из ниоткуда.
🔍 Что помогло:
🔹Проверил настройки resolv.conf
в Pod'ах (cat /etc/resolv.conf
)
🔹Установил timeout:1 attempts:1
— теперь ошибки быстрее, но предсказуемо
🔹В некоторых случаях можно использовать dnsPolicy: "None"
и задать dnsConfig
вручную
💡 Совет: всегда проверяйте, какие настройки DNS попадают внутрь Pod'а, особенно если ловите баги «иногда и непонятно почему».
Подпишись 👉@devopslib
BY Библиотека девопса | DevOps, SRE, Sysadmin
Share with your friend now:
tgoop.com/devopslib/82