Когда речь идёт о производительности Kubernetes, важен каждый DNS lookup. Без NodeLocal DNSCache Pods отправляют DNS queries на Service IP
kube-dns / CoreDNS. Эти запросы проходят через kube-proxy, DNAT rules и conntrack, прежде чем попасть в CoreDNS.В нагруженных кластерах это может увеличивать latency и создавать дополнительную нагрузку на conntrack table. NodeLocal DNSCache решает эту проблему, запуская локальный DNS cache на каждом node в виде DaemonSet. Вместо прямого обращения к CoreDNS Pods отправляют DNS queries в локальный cache на том же node.
Основные преимущества:
• Снижает среднее время DNS lookup благодаря локальному кешированию
• Уменьшает нагрузку на CoreDNS
• Снижает нагрузку на conntrack table
• DNS queries к внешним адресам могут отправляться upstream напрямую, без дополнительного обращения к CoreDNS
NodeLocal DNSCache особенно полезен в крупных и нагруженных Kubernetes-кластерах, где DNS latency и conntrack могут стать узкими местами.
✈️ Linux Ninja
