我们目前在Kubernetes集群(AKS)中有一些Pod需要解析两个不同的域。第一个域是集群域default.svc.cluster.local,第二个域是mydns.local如何做到这一点?
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位于代理设置之后。
yourdns.server
domain.server
1条答案
按热度按时间7xzttuei1#
我自己找到了解决办法。
有两种方法可以实现所需的名称解析:
1.如果您的AKS群集位于Azure VNET中,则可以将VNET中的DNS设置设置为能够解析您的自定义域的自定义DNS服务器。如果您的Pod没有指定的dns设置,则分辨率将以这种方式工作:
首先,Pod尝试在CoreDNS中解析DNS请求,如果无法解析,则会获取主机的DNS设置并询问主机中配置的DNS服务器。由于在Azure中,VNET的DNS设置应用于虚拟机,因此它将询问正确的DNS服务器。
1.使用以下json修改AKS集群中的coreDNS设置:
重要的是要知道,在AKS中,您不能覆盖coredns ConfigMap。Kubernetes master将在几秒钟后将其重置为默认值。如果你想在AKS中编辑ConfigMap,你必须将ConfigMap命名为“coredns-custom”。
yourdns.server
不是服务器。这就是domain.server
。DNS服务器IP位于代理设置之后。