是否可以通过反向 dns 查询 POD IP 地址来获取 Kubernetes 部署的主机名?
Is it possible to Reverse-dns query for a POD IP address to get its hostname for a Kubernetes Deployment?
我有一个部署,其中副本在无头服务下放大和缩小。我可以查询 ..svc.cluster.local 所有 Pod IP 的 returns 列表。
我想知道是否可以查询每个 pod IP 并获取 pod 的主机名?它适用于同一台主机上的 Pods。但它没有解析来自其他主机的pods。
我注意到它适用于 StatefulSet。但它不适用于部署。
这个已经讨论过了 for kube-dns
. There has been more discussion here too。
但是,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
我有一个部署,其中副本在无头服务下放大和缩小。我可以查询 ..svc.cluster.local 所有 Pod IP 的 returns 列表。
我想知道是否可以查询每个 pod IP 并获取 pod 的主机名?它适用于同一台主机上的 Pods。但它没有解析来自其他主机的pods。
我注意到它适用于 StatefulSet。但它不适用于部署。
这个已经讨论过了kube-dns
. There has been more discussion here too。
但是,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