Kubernetes CoreDNS 重写特定命名空间的 CNAME 记录规则

Kubernetes CoreDNS rewrite CNAME record rules for specific namespace

对于我的项目,我需要使用 CoreDNS 覆盖 CNAME DNS 记录以进行内部集群 DNS 解析。 我可以在全局范围内为这样的集群执行此操作:

apiVersion: v1
        data:
        Corefile: |
            # Add your CoreDNS customizations as import files.
            # Refer to https://cloud.ibm.com/docs/containers?topic=containers-cluster_dns for details.
            .:53 {
                rewrite name test.example.com example.namespace1.svc.cluster.local
                ...
            }
...

因此在整个集群中,所有对 test.example.com 的请求都将发送到服务:example.namespace1.svc.cluster.local.

是否可以只为特定命名空间定义重写规则? 例如,我只希望 namespace1 具有此重写规则。

谢谢!

不,不可能通过修改核心 DNS 的 configMap 为每个命名空间设置 DNS,因为 coreDNS 是集群范围的 DNS。如果您的用例是通过主机名公开服务,那么您可以探索 ingress