Can't resolve 'kubernetes' by skydns serivce in Kubernetes

9/24/2015

core@core-1-94 ~ $ kubectl exec -it busybox -- nslookup kubernetes Server: 10.100.0.10 Address 1: 10.100.0.10

nslookup: can't resolve 'kubernetes' core@core-1-94 ~ $ kubectl get svc --namespace=kube-system NAME LABELS SELECTOR IP(S) PORT(S) kube-dns k8s-app=kube-dns,kubernetes.io/cluster-service=true,kubernetes.io/name=KubeDNS k8s-app=kube-dns 10.100.0.10 53/UDP 53/TCP kube-ui k8s-app=kube-ui,kubernetes.io/cluster-service=true,kubernetes.io/name=KubeUI k8s-app=kube-ui 10.100.110.236 80/TCP core@core-1-94 ~ $ kubectl exec -it busybox -- nslookup kubernetes 10.100.0.10:53 Server: 10.100.0.10 Address 1: 10.100.0.10

nslookup: can't resolve 'kubernetes' core@core-1-94 ~ $ kubectl get endpoints --namespace=kube-system NAME ENDPOINTS kube-dns 10.244.31.16:53,10.244.31.16:53 kube-ui 10.244.3.2:8080 core@core-1-94 ~ $ kubectl exec -it busybox -- nslookup kubernetes 10.244.31.16:53 Server: 10.244.31.16 Address 1: 10.244.31.16

Name: kubernetes Address 1: 10.100.0.1

I think the service of kube-dns is Not available.

the skydns-svc.yaml :

apiVersion: v1 kind: Service metadata: name: kube-dns namespace: kube-system labels: k8s-app: kube-dns kubernetes.io/cluster-service: "true" kubernetes.io/name: "KubeDNS" spec: selector: k8s-app: kube-dns clusterIP: 10.100.0.10 ports:

  • name: dns port: 53 protocol: UDP
  • name: dns-tcp port: 53 protocol: TCP

Who can help ?

-- sope
kubernetes

1 Answer

9/24/2015

For DNS to work, the kubelet needs to be passed the flags --cluster_dns= and --cluster_domain=cluster.local at startup. This flag isn't included in the set of flags passed to the kubelet, so the kubelet won't try to contact the DNS pod that you've created for name resolution services. To fix this, you can modify the script to add these two flags to the kubelet and then when you create a DNS service, you need to make sure that you set the same ip address that you passed to the --cluster_dns flag as the portalIP field of the service spec like this. For any other information, you can look it.

-- Animesh Kumar Paul
Source: StackOverflow