如何将Cloudflare 1.1.1.1与Kubernetes DNS一起使用

如何将Cloudflare 1.1.1.1与Kubernetes DNS一起使用,kubernetes,dns,cloudflare,nameservers,coredns,Kubernetes,Dns,Cloudflare,Nameservers,Coredns,我想在Kubernetes中使用Cloudflare的名称服务器。我可以用它来做。我需要以某种方式设置以下内容: IPv4:1.1.1.1和1.0.0.1 IPv6:2606:4700:4700::1111和2606:4700:4700::1001 TLS服务器名称:TLS.cloudflare dns.com 我的ConfigMap应该是什么样子?我从下面开始: apiVersion: v1 kind: ConfigMap data: upstreamNameservers: |

我想在Kubernetes中使用Cloudflare的名称服务器。我可以用它来做。我需要以某种方式设置以下内容:

  • IPv4:
    1.1.1.1
    1.0.0.1
  • IPv6:
    2606:4700:4700::1111
    2606:4700:4700::1001
  • TLS服务器名称:
    TLS.cloudflare dns.com
我的
ConfigMap
应该是什么样子?我从下面开始:

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

您可以配置核心dns
kubectl-n kube系统编辑configmap coredns
并添加到corefile的末尾:

. {
    forward . tls://1.1.1.1 tls://1.0.0.1 {
       tls_servername cloudflare-dns.com
       health_check 5s
    }
    cache 30
}
然后保存新配置并重新启动核心dns吊舱

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

Azure AKS唯一的答案 这是直接抄袭的

对于kube dns,有一个未记录的功能,它支持两个配置映射,允许用户执行dns覆盖/存根域和其他自定义。转换为CoreDNS后,此功能丢失-CoreDNS仅支持单个配置映射。有了上面的修补程序,AKS现在有了一个解决方案来满足相同级别的定制。以下是CoreDNS的等效配置映射:

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

有没有一种方法可以使用更加友好的
ConfigMap
来实现这一点?另外,核心DNS是否支持IPv6?使用
kubectl-n kube system edit configmap coredns
you ipdate configmap,关于IPv6我不这么认为,因为Kubernetes不完全支持IPv6。是否有办法修补
configmap
以仅提供您想要更改的配置片段?如果可能的话,我想通过CI/CD来实现这一点,以使事情可重复,而
kubectl edit
对这一点来说并不好。这是一个
kube系统
名称空间。因此,如果您想添加一些CI/CD更新此configmap,您必须在存储基础结构代码的位置对其进行更改,例如KOP将其存储在AWS上的s3存储桶中。如果不管理
kube系统
名称空间,只需更新当前设置即可。