Как работает NodeLocal DNSCache в Kubernetes
Когда речь идёт о производительности, в Kubernetes важен каждый DNS-запрос.
Без NodeLocal DNSCache поды отправляют DNS-запросы на Service IP kube-dns/CoreDNS.
Перед тем как попасть в CoreDNS, эти запросы проходят через kube-proxy, правила DNAT и conntrack.
В нагруженных кластерах это может увеличивать задержки и создавать дополнительную нагрузку на таблицу conntrack.
NodeLocal DNSCache решает эту проблему, запуская локальный DNS-кеш на каждой ноде в виде DaemonSet.
Вместо того чтобы обращаться напрямую к CoreDNS, поды отправляют DNS-запросы в локальный кеш на той же ноде.
Основные преимущества:
- Снижает среднее время DNS-резолвинга, поскольку DNS-запросы обрабатываются локально через DNS-кеш.
- Снижает нагрузку на CoreDNS.
- Помогает избежать переполнения таблицы conntrack, поскольку соединения от подов к локальному кешу не создают записи в таблице conntrack.
- DNS-запросы к внешним URL могут форвардиться напрямую, без участия CoreDNS.
👉 DevOps Portal
Post #2078
1.83K

- ❤ 2
- 👍 2