David Tong
David Tong

Reputation: 363

Why coredns in Kubernetes can't resolve Pod DNS Records

ytong@controller-4135505:~/cka$ cat 14.15-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: busy33
  labels:
    app: 14-15
spec:
  dnsPolicy: ClusterFirstWithHostNet
  hostname: 14-15
  subdomain: ytong82
  containers:
  - name: busybox-container
    image: busybox
    command: ['sleep', '3600']
ytong@controller-4135505:~/cka$ kubectl get pods -o wide | grep busy33
busy33                     1/1     Running     0          91s     10.36.0.1   worker3-4135521   <none>           <none>

I try to resolve its pod DNS records like below

ytong@controller-4135505:~/cka$ kubectl exec -it busy33 -- nslookup -type=a 10-36-0-1.default.svc.cluster.local
Server:         10.96.0.10
Address:        10.96.0.10:53

** server can't find 10-36-0-1.default.svc.cluster.local: NXDOMAIN

command terminated with exit code 1
ytong@controller-4135505:~/cka$ kubectl exec -it busy33 -- nslookup -type=a 14-15.ytong82.default.svc.cluster.local
Server:         10.96.0.10
Address:        10.96.0.10:53

** server can't find 14-15.ytong82.default.svc.cluster.local: NXDOMAIN

command terminated with exit code 1

Neither of above commands work.

Upvotes: 2

Views: 408

Answers (2)

David Tong
David Tong

Reputation: 363

Replace svc.cluster.local with pod.cluster.local and it works for resolve pod DNS name by ip address

Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      10-36-0-1.default.pod.cluster.local
Address 1: 10.36.0.1 busy33

Upvotes: -1

Arghya Sadhu
Arghya Sadhu

Reputation: 44549

Use image busybox:1.28 instead of other images as those images has got DNS resolution issue.

When you are trying to do DNS resolution using pod you need to use below command which has pod instead of svc

kubectl exec -it busy33 -- nslookup 10-36-0-1.default.pod.cluster.local

Upvotes: 2

Related Questions