如何列出所有kubernetes DNS记录?

时间:2019-06-22 04:47:28

标签: kubernetes

我在一个(裸机)集群中运行了kube-dns。我知道它可以正常工作,interpolate a service to a name已创建并获得主机条目:

$ host elk-service-headless.default.svc.cluster.local
elk-service-headless.default.svc.cluster.local has address 10.42.0.151
elk-service-headless.default.svc.cluster.local has address 10.42.0.152
elk-service-headless.default.svc.cluster.local has address 10.42.0.153
(...)

我不知道该怎么做,就是列出kube-dns持有的所有记录。我已经尝试过standard DNS tricks,例如dig和host -l,但无法获取它们。但是无论如何,必须有一种方法可以通过Kubernetes本身来实现。我尝试检查ConfigMap,但未找到所需的内容。

1 个答案:

答案 0 :(得分:1)

如果您使用的是kube-dns,它将使用dnsmaq进行缓存 DNS记录,您可以通过this answer转储记录。

如果您使用的是coredns,它会嵌入一个cache插件来缓存DNS记录,而我找不到在该缓存插件中获取数据的方法。但是我发现coredns可以将etcd用作后端,因此DNS记录可以缓存在etcd中,但这需要使用以下Corefile重新配置您的coredns:

.:53 {
    etcd {
        path /skydns
        endpoint <etcd_endpoint>
        upstream /etc/resolv.conf
    }
    ...
}