使 coredns 响应依赖于 k8s 集群中的客户端名称空间

Make coredns responses depend on client namespaces in k8s cluster

k8s集群中不同命名空间的同一个域名查询,如何让coredns响应不同的IP地址?

我希望它表现得像这样:

namespace A (inside k8s cluster):
domain “abc.foo.bar” query  —— coredns1---—> response 192.168.0.100 (outside k8s cluster)

namespace B (inside k8s cluster):
domain “abc.foo.bar” query  —— coredns1---—> response 192.168.0.101 (outside k8s cluster)

namespace C (inside k8s cluster):
domain “abc.foo.bar” query  —— coredns1---—> response 192.168.0.102 (outside k8s cluster)
默认安装中的

CoreDNS 无法根据查询所来自的命名空间来源为不同的区域提供服务。 实现 CoreDNS 为不同的传入查询提供不同的答案 在命名空间上,您需要为各个命名空间创建单独的 CoreDNS 实例。 第二个问题是 CoreDNS 需要缓存答案。达到 它针对不同的查询,需要有单独的缓存。

好消息是 - CoreDNS 正在为 plugins 提供接口,因此您可以为您的 自己的目的。