在Kubernetes集群(AKS)中解析自定义DNS

j5fpnvbx  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(108)

我们目前在Kubernetes集群(AKS)中有一些Pod需要解析两个不同的域。
第一个域是集群域default.svc.cluster.local,第二个域是mydns.local
如何做到这一点?

7xzttuei

7xzttuei1#

我自己找到了解决办法。
有两种方法可以实现所需的名称解析:
1.如果您的AKS群集位于Azure VNET中,则可以将VNET中的DNS设置设置为能够解析您的自定义域的自定义DNS服务器。如果您的Pod没有指定的dns设置,则分辨率将以这种方式工作:
首先,Pod尝试在CoreDNS中解析DNS请求,如果无法解析,则会获取主机的DNS设置并询问主机中配置的DNS服务器。由于在Azure中,VNET的DNS设置应用于虚拟机,因此它将询问正确的DNS服务器。
1.使用以下json修改AKS集群中的coreDNS设置:

apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns-custom
  namespace: kube-system
data:
  yourdns.server: |
    yourdns.com:53 {
      errors
      cache 1
      proxy . 10.1.0.40
    }

重要的是要知道,在AKS中,您不能覆盖coredns ConfigMap。Kubernetes master将在几秒钟后将其重置为默认值。如果你想在AKS中编辑ConfigMap,你必须将ConfigMap命名为“coredns-custom”。
yourdns.server不是服务器。这就是domain.server。DNS服务器IP位于代理设置之后。

相关问题