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

时间:2019-02-04 09:19:01

标签: kubernetes dns cloudflare nameservers coredns

我想在Kubernetes中使用Cloudflare的1.1.1.1 and 1.0.0.1名称服务器,以及DNS over TLS。它可以looks like使用core-dns来完成。我需要以某种方式设置以下内容:

  • IPv4:1.1.1.11.0.0.1
  • IPv6:2606:4700:4700::11112606:4700:4700::1001
  • TLS服务器名称:tls.cloudflare-dns.com

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

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

2 个答案:

答案 0 :(得分:3)

您可以配置核心DNS kubectl -n kube-system edit configmap coredns 并添加到corefile的末尾:

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

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

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

答案 1 :(得分:1)

仅Azure AKS答案

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

使用kube-dns,有一个未记录的功能,它支持两个配置映射,允许用户执行DNS覆盖/存根域以及其他自定义设置。随着向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