Kubernetes: Kube-DNS vs. CoreDNS

10/11/2018

I am new to Kubernetes and looking for a better understanding of the difference between Kube-DNS and CoreDNS.

As I understand it the recommendation is to use the newer CoreDNS rather than the older Kube-DNS.

I have setup a small cluster using kubeadm and now I am a little confused about the difference between CoreDNS and Kube-DNS.

Using kubectl get pods --all-namespaces I can see that I have two CoreDNS pods running.

However using kubectl get svc --all-namespaces I also see that I have a service named kube-dns running in the kube-system namespace. When I inspect that with kubectl describe svc/kube-dns -n kube-system I can see that the kube-dns service links to coredns.

I am now wondering if I am actually running both kube-dns and coredns. Or else, why is that service called kube-dns and not core-dns?

-- lanoxx
dns
kubernetes

1 Answer

10/11/2018

I have K8S 1.12. Do a describe of the dns pod.

kubectl describe pod coredns-576cbf47c7-hhjrs --namespace=kube-system | grep -i "image:"

Image: k8s.gcr.io/coredns:1.2.2

Looks like coredns is running. According to the documentation CoreDNS is default from K8S 1.11. For previous installations it's kube-dns.

The image is what important, rest are metadata (names, labels etc).

According to the K8S blog here.

In Kubernetes 1.11, CoreDNS has reached General Availability (GA) for DNS-based service discovery, as an alternative to the kube-dns addon. This means that CoreDNS will be offered as an option in upcoming versions of the various installation tools. In fact, the kubeadm team chose to make it the default option starting with Kubernetes 1.11.

Also, see this link for more info.

-- Praveen Sripati
Source: StackOverflow