如何将 Cloudflare 1.1.1.1 与 Kubernetes DNS 结合使用

How to use Cloudflare 1.1.1.1 with Kubernetes DNS

我想使用 Cloudflare 的 1.1.1.1 and 1.0.0.1 nameservers in Kubernetes, alongside DNS over TLS. It looks like I can do it using core-dns。我需要以某种方式设置以下内容:

我的 ConfigMap 应该是什么样子?我已经在下面开始了:

apiVersion: v1
kind: ConfigMap
data:
  upstreamNameservers: |
    ["1.1.1.1", "1.0.0.1"]

您可以配置您的 core-dns kubectl -n kube-system edit configmap coredns 并添加到核心文件的末尾:

. {
    forward . tls://1.1.1.1 tls://1.0.0.1 {
       tls_servername cloudflare-dns.com
       health_check 5s
    }
    cache 30
}

然后保存新配置并重启 core-dns pods。

kubectl get pod -n kube-system | grep core-dns | cut -d " " -f1 - | xargs -n1 -P 10 kubectl delete pod -n kube-system

Azure AKS 唯一答案

这是直接从 Azure AKS releases 复制的。

对于 kube-dns,有一个未记录的功能,它支持两个配置映射,允许用户执行 DNS overrides/stub 域和其他自定义。转换为 CoreDNS 后,此功能丢失了——CoreDNS 仅支持单个配置映射。通过上述修补程序,AKS 现在可以解决相同级别的自定义问题。这是 CoreDNS 的等效 ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns-custom
  namespace: kube-system
data:
  azurestack.server: |
    azurestack.local:53 {
        forward . tls://1.1.1.1 tls://1.0.0.1 {
          tls_servername cloudflare-dns.com
          health_check 5s
        }
        cache 30
    }

创建配置映射后,您需要删除 CoreDNS 部署以强制加载新配置。

kubectl -n kube-system delete po -l k8s-app=kube-dns