If you used K8s, you know that DNS is heavily used in this environment. An application talks to another app via DNS name. An application talks to external app via DNS name. You also know that K8s has 100's of nodes working together. So, if 50000 pods are interacting with each other, you can imagine so many DNS queries. Although, each POD can have some cache, it will be good to have node level DNS cache. It will help PODs to avoid maintaining cache there.
NodeLocal DNSCache improves Cluster DNS performance by running a dns caching agent on cluster nodes as a DaemonSet. In today’s architecture, Pods in ClusterFirst DNS mode reach out to a kube-dns serviceIP for DNS queries.
This is a new feature which is available for Beta in version1.15
Please refer https://www.codacy.com/blog/dns-hell-in-kubernetes/
https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/