How to install kube-dns on minikube?

6/14/2019

I've looked at How does one install the kube-dns addon for minikube? but the issue is that in that question, the addon is installed. However when I write

minikube addons list

I get the following:

- addon-manager: enabled - dashboard: enabled - default-storageclass: enabled - efk: disabled - freshpod: disabled - gvisor: disabled - heapster: disabled - ingress: disabled - logviewer: disabled - metrics-server: disabled - nvidia-driver-installer: disabled - nvidia-gpu-device-plugin: disabled - registry: disabled - registry-creds: disabled - storage-provisioner: enabled - storage-provisioner-gluster: disabled

none of which is kube-dns. Can't find instructions anywhere as it's supposed to be there by default, so what have I missed?

EDIT This is minikube v1.0.1 running on Ubuntu 18.04.

-- David Boshton
kubernetes

1 Answer

6/28/2019

The StackOverflow case which you are referring to was in 2017 so it's bit outdated.

According to documentation CoreDNS is recommended DNS server which replaced kube-dns. There was a transitional period when both KubeDNS and CoreDNS were deployed parallel, however in latest version only CoreDNS is deployed.

As default Minikube is creating 2 pods with CoreDNS. To verify execute:

$ kubectl get pods -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-5c98db65d4-g4vs2           1/1     Running   1          20m
coredns-5c98db65d4-k4s7v           1/1     Running   1          20m
etcd-minikube                      1/1     Running   0          19m
kube-addon-manager-minikube        1/1     Running   0          20m
kube-apiserver-minikube            1/1     Running   0          19m
kube-controller-manager-minikube   1/1     Running   0          19m
kube-proxy-thbv5                   1/1     Running   0          20m
kube-scheduler-minikube            1/1     Running   0          19m
storage-provisioner                1/1     Running   0          20m

You can also see that there is CoreDNS deployment.

$ kubectl get deployments coredns -n kube-system
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
coredns   2/2     2            2           37m

Here you can find comparison between both DNS.

So in short, you did not miss anything. CoreDNS is deployed as default during minikube start.

-- PjoterS
Source: StackOverflow