Understanding DNS Resolution on Linux and Kubernetes
Published on: 2025-05-27 09:42:03
I recently investigated a warning message on Kubernetes that said: DNSConfigForming ... Nameserver limits were exceeded, some nameservers have been omitted . This was technically a Kubernetes event with type: Warning , and these usually indicate that there’s something wrong, so I wanted to investigate it.
This led me down a pretty deep rabbit hole about DNS resolution on Linux in general and Kubernetes in particular. I thought it might be helpful to others to explain how this all works, just in case you have to troubleshoot a DNS issue some day (and as we now, it’s always DNS) on Linux or on Kubernetes.
Kubernetes DNS in theory
Kubernetes provides DNS-based service discovery. When we create a service named foo in namespace bar , Kubernetes creates a DNS entry, foo.bar.svc.cluster.local , that resolves to that service’s ClusterIP .
Any pod in the cluster can resolve foo.bar or foo.bar.svc and obtain that service’s ClusterIP . Any pod in the same bar namespace can even just resolve f
... Read full article.