提问者:小点点

是否可以反向查询PODIP地址,以获得其主机名库伯内特斯部署?


我有一个部署,其中副本向上和向下扩展,都在无头服务下。我能够查询… svc.club.local,它返回所有pod IP的列表。

我想知道是否可以查询每个podIP并获取pod的主机名?它适用于同一主机上的pod。但它不能解析来自其他主机的pod。

我注意到它适用于StatefulSet。但它不适用于部署。


共1个答案

匿名用户

这已经在库贝-dns中讨论过了。这里也有更多的讨论。

但是,PTR记录在coredns和K8s 1.12中对我来说工作得很好:

$ kubectl get pod helloworld-xxxxxxxxxx-xxxxx -o=jsonpath="{.metadata.annotations['cni\.projectcalico\.org/podIP']}" | cut -d "/" -f 1
192.168.11.28
# Connect to another pod   
$ kubectl exec -it anotherpod-svc-xxxxxxxxxx-xxxxx bash
root@anotherpod-xxxxxxxxxx-xxxxx:/# dig +short -x 192.168.11.28
192-168-11-28.helloworld.default.svc.cluster.local.
root@anotherpod-xxxxxxxxxx-xxxxx:/# dig +short 192-168-11-28.helloworld.default.svc.cluster.local
192.168.11.28

# Another helloworld pod on a different physical machine
$ kubectl get pod helloworld-xxxxxxxxxx-xxxxx -o=jsonpath="{.metadata.annotations['cni\.projectcalico\.org/podIP']}" | cut -d "/" -f 1
192.168.4.6
# Connect to another pod   
$ kubectl exec -it anotherpod-svc-xxxxxxxxxx-xxxxx bash
root@anotherpod-svc-xxxxxxxxxx-xxxxx:/# dig +short -x 192.168.4.6
192-168-4-6.helloworld.default.svc.cluster.local.
root@anotherpod-xxxxxxxxxx-xxxxx:/# dig +short 192-168-4-6.helloworld.default.svc.cluster.local
192.168.4.6