kube-dns:解决<服务名称>成功,解决<服务名称>。<名称空间>失败

时间:2019-06-28 07:31:16

标签: kubernetes

我在集群中成功部署了kube-dns。而且,k8s官方文档(https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/)表示您可以解析三种形式的地址:

  1. <service name>
  2. <service name>.<namespace>
  3. <service name>.<namespace>.svc.cluster.local

我能成功nslookup 1 && 3,但失败了2,很奇怪。

例如,我们在默认名称空间中有一个名为nginx的服务。而且我也在默认名称空间中的Pod上执行以下命令:

  1. nslookup nginx
  2. nslookup nginx.default
  3. nslookup nginx.defaultsvc.cluster.local

1 && 3将成功,而2将失败。

我记录了两个节点之间的通信: 假设我们在node-src上运行了一个名为pod-src的pod。而且我们在节点dns上运行了dns pod。 我在node-dns上执行tcpdump -i docker0,它看起来像:

  1. nslookup kubernetes.default.svc.cluster.local

    15:08:01.714732 IP 172.30.102.0.44766 > 172.30.96.2.domain: 2+ PTR? 2.0.254.10.in-addr.arpa. (41)
    15:08:01.715317 IP 172.30.96.2.domain > 172.30.102.0.44766: 2 1/0/0 PTR kube-dns.kube-system.svc.cluster.local. (93)
    15:08:01.716090 IP 172.30.102.0.39995 > 172.30.96.2.domain: 3+ AAAA? kubernetes.default.svc.cluster.local. (54)
    15:08:01.716492 IP 172.30.96.2.domain > 172.30.102.0.39995: 3* 0/1/0 (108)
    15:08:01.717521 IP 172.30.102.0.46919 > 172.30.96.2.domain: 4+ A? kubernetes.default.svc.cluster.local. (54)
    15:08:01.717870 IP 172.30.96.2.domain > 172.30.102.0.46919: 4* 1/0/0 A 10.254.0.1 (70)
    15:08:01.718690 IP 172.30.102.0.35495 > 172.30.96.2.domain: 5+ PTR? 1.0.254.10.in-addr.arpa. (41)
    15:08:01.719088 IP 172.30.96.2.domain > 172.30.102.0.35495: 5 1/0/0 PTR kubernetes.default.svc.cluster.local. (91)
    

    2.nsklookup kubernetes.default

    15:08:06.677306 IP 172.30.102.0.59105 > 172.30.96.2.domain: 2+ PTR? 2.0.254.10.in-addr.arpa. (41)
    15:08:06.677410 IP 172.30.96.2.domain > 172.30.102.0.59105: 2 1/0/0 PTR kube-dns.kube-system.svc.cluster.local. (93)
    15:08:06.678175 IP 172.30.102.0.37486 > 172.30.96.2.domain: 3+ AAAA? kubernetes.default. (36)
    15:08:06.678468 IP 172.30.96.2.16854 > dns.localdns.com.domain: 31419+ AAAA? kubernetes.default. (36)
    15:08:06.678507 IP 172.30.96.2.16854 > 10.167.1.1.domain: 31419+ AAAA? kubernetes.default. (36)
    15:08:06.678873 IP dns.localdns.com.domain > 172.30.96.2.16854: 31419 0/1/0 (127)
    15:08:06.678886 IP 10.167.1.1.domain > 172.30.96.2.16854: 31419 0/1/0 (116)
    15:08:06.678978 IP 172.30.96.2.domain > 172.30.102.0.37486: 3 0/1/0 (127)
    15:08:06.680163 IP 172.30.102.0.46175 > 172.30.96.2.domain: 4+ A? kubernetes.default. (36)
    15:08:06.680319 IP 172.30.96.2.52575 > dns.localdns.com.domain: 53398+ A? kubernetes.default. (36)
    15:08:06.680573 IP dns.localdns.com.domain > 172.30.96.2.52575: 53398 0/1/0 (127)
    15:08:06.680694 IP 172.30.96.2.domain > 172.30.102.0.46175: 4 0/1/0 (127)
    
    1. nslookup kubernetes

      15:10:49.753009 IP 172.30.102.0.33202 > 172.30.96.2.domain: 2+ PTR? 2.0.254.10.in-addr.arpa. (41)
      15:10:49.753444 IP 172.30.96.2.domain > 172.30.102.0.33202: 2 1/0/0 PTR kube-dns.kube-system.svc.cluster.local. (93)
      15:10:49.754147 IP 172.30.102.0.38670 > 172.30.96.2.domain: 3+ AAAA? kubernetes.default.svc.cluster.local. (54)
      15:10:49.754527 IP 172.30.96.2.domain > 172.30.102.0.38670: 3* 0/1/0 (108)
      15:10:49.755278 IP 172.30.102.0.55790 > 172.30.96.2.domain: 4+ A? kubernetes.default.svc.cluster.local. (54)
      15:10:49.755648 IP 172.30.96.2.domain > 172.30.102.0.55790: 4* 1/0/0 A 10.254.0.1 (70)
      15:10:49.756342 IP 172.30.102.0.42938 > 172.30.96.2.domain: 5+ PTR? 1.0.254.10.in-addr.arpa. (41)
      15:10:49.756646 IP 172.30.96.2.domain > 172.30.102.0.42938: 5 1/0/0 PTR kubernetes.default.svc.cluster.local. (91)
      
      • 172.30.102.0是src节点中的docker0地址。
      • 172.30.96.2是dns pod地址。
      • 10.167.1.1是本地名称服务器。
      • dns.localdns.com也是我们的本地名称服务器。

0 个答案:

没有答案