服务名称未在 Kubernetes 集群中解析

use*_*964 5 dns kubernetes

正如标题所述,我在解析 K8 集群中的服务名称时遇到问题。

根据这个问题,我创建了一个 busybox pod 并尝试使用nslookup nginx-service. 我收到错误:;; connection timed out; no servers could be reached

我也试过说明如何调试DNS问题的官方K8的文档上。正如它所说,我试图做一个,nslookup kubernetes.default但得到了和以前一样的错误。

下面列出了一些信息:

1) 输出 cat /etc/resolv.conf

nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local 
reddog.microsoft.com
options ndots:5
Run Code Online (Sandbox Code Playgroud)

2) 结果 kubectl get pods --namespace=kube-system -l k8s-app=kube-dns

NAME                       READY   STATUS    RESTARTS   AGE
coredns-5c98db65d4-5nprd   1/1     Running   0          3d22h
coredns-5c98db65d4-5vw95   1/1     Running   0          3d22h
Run Code Online (Sandbox Code Playgroud)

3) 输出 for p in $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name); do kubectl logs --namespace=kube-system $p; done

.:53
2019-07-22T18:39:37.208Z [INFO] CoreDNS-1.3.1
2019-07-22T18:39:37.208Z [INFO] linux/amd64, go1.11.4, 6b56a9c
CoreDNS-1.3.1
linux/amd64, go1.11.4, 6b56a9c
2019-07-22T18:39:37.208Z [INFO] plugin/reload: Running configuration MD5 = 5d5369fbc12f985709b924e721217843
.:53
2019-07-22T18:39:37.245Z [INFO] CoreDNS-1.3.1
2019-07-22T18:39:37.245Z [INFO] linux/amd64, go1.11.4, 6b56a9c
CoreDNS-1.3.1
linux/amd64, go1.11.4, 6b56a9c
2019-07-22T18:39:37.245Z [INFO] plugin/reload: Running configuration MD5 = 5d5369fbc12f985709b924e721217843
Run Code Online (Sandbox Code Playgroud)

值得一提的是,因为10.96.0.10当我尝试 ping 该 IP 时,我知道 DNS 服务器正在运行,所以我没有收到响应。

编辑:输出 dig @10.96.0.10 nginx-service

; <<>> DiG 9.11.3 <<>> @10.96.0.10 nginx-service
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
Run Code Online (Sandbox Code Playgroud)