我在集群中成功部署了kube-dns。而且,k8s官方文档(https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/)表示您可以解析三种形式的地址:
<service name>
<service name>.<namespace>
<service name>.<namespace>.svc.cluster.local
我能成功nslookup
1 && 3,但失败了2,很奇怪。
例如,我们在默认名称空间中有一个名为nginx的服务。而且我也在默认名称空间中的Pod上执行以下命令:
nslookup nginx
nslookup nginx.default
nslookup nginx.defaultsvc.cluster.local
1 && 3将成功,而2将失败。
我记录了两个节点之间的通信:
假设我们在node-src上运行了一个名为pod-src的pod。而且我们在节点dns上运行了dns pod。
我在node-dns上执行tcpdump -i docker0
,它看起来像:
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)
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)