I discovered through some troubleshooting that kube-dns is not working as intended in my minikube cluster. I can see the kube-dns addon enabled when I do minikube addons list
command and there is also a kube-dns service running, but there are no kube-dns pods running.
$ kubectl get all -n kube-system
NAME READY STATUS RESTARTS AGE
po/kube-addon-manager-minikube 1/1 Running 0 15m
po/kubernetes-dashboard-bltvf 1/1 Running 0 14m
NAME DESIRED CURRENT READY AGE
rc/kubernetes-dashboard 1 1 1 14m
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/kube-dns 10.0.0.10 <none> 53/UDP,53/TCP 14m
svc/kubernetes-dashboard 10.0.0.192 <nodes> 80:30000/TCP 14m
$ kubectl get ep kube-dns --namespace=kube-system
NAME ENDPOINTS AGE
kube-dns <none> 19m
I've tried using the kube-dns-controller.yaml
file to create/deploy manually but I also get errors validating that file:
error: error validating "kube-dns-controller.yaml": error validating data: [found invalid field optional for v1.ConfigMapVolumeSource, found invalid field tolerations for v1.PodSpec]; if you choose to ignore these errors, turn validation off with --validate=false
Any ideas on what else I should look at to resolve the issue? Thanks!
Note: I am using minikube version v0.19.1 and kubernetes v1.5.2.
Looks like the issue was with the kubernetes version. Once I upgraded to v1.6.0, kube-dns was working fine again.
EDIT: To fix the issue with v1.5.2 I used the workaround seen here