为什么Kubernetes中的coredns无法解析Pod DNS记录

时间:2020-06-06 04:21:35

标签: kubernetes

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>

我尝试如下解决其pod DNS记录

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

以上命令均无效。

2 个答案:

答案 0 :(得分:2)

使用图像busybox:1.28代替其他图像,因为这些图像存在DNS解析问题。

当您尝试使用pod进行DNS解析时,您需要使用以下命令,该命令具有pod而不是svc

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

答案 1 :(得分:-1)

用pod.cluster.local替换svc.cluster.local,它可以通过IP地址解析pod DNS名称

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