解析kubernetes群集(AKS)中的自定义dns

解析kubernetes群集(AKS)中的自定义dns,kubernetes,dns,azure-aks,kube-dns,coredns,Kubernetes,Dns,Azure Aks,Kube Dns,Coredns,我们目前在kubernetes集群(AKS)中有一个POD,需要解析两个不同的域 第一个域是群集域default.svc.cluster.local,第二个域是mydns.local 如何实现这一点?我认为您可以使用入口和入口控制器来管理域和路径。使用入口,您可以管理多个域并将服务连接到特定域 这里还提供了从数字海洋设置入口的共享教程,您可以按照此教程进行操作: 我自己找到了解决办法 有两种方法可以实现所需的名称解析: 如果您的AKS群集位于Azure VNET中,您可以将VNET中的DNS

我们目前在kubernetes集群(AKS)中有一个POD,需要解析两个不同的域

第一个域是群集域default.svc.cluster.local,第二个域是mydns.local


如何实现这一点?

我认为您可以使用入口和入口控制器来管理域和路径。使用入口,您可以管理多个域并将服务连接到特定域

这里还提供了从数字海洋设置入口的共享教程,您可以按照此教程进行操作:


我自己找到了解决办法

有两种方法可以实现所需的名称解析:

  • 如果您的AKS群集位于Azure VNET中,您可以将VNET中的DNS设置设置为能够解析您的自定义域的自定义DNS服务器。如果您的POD没有指定的dns设置,则解析将按以下方式工作:
  • 首先,POD尝试在CoreDNS中解析DNS请求,如果无法解析,则采用主机的DNS设置并询问主机中配置的DNS服务器。由于在azure中,VNET的DNS设置应用于虚拟机,因此它将询问正确的DNS服务器

  • 使用以下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配置映射。Kubernetes主机将始终在几秒钟后将其重置为默认值。如果要在AKS中编辑ConfigMap,必须将ConfigMap命名为“coredns自定义”

    yourdns.server
    实际上不是服务器。它是
    域.server
    。DNS服务器IP位于代理设置后面。

    您的第二点“2.使用以下json修改AKS群集中的coreDNS设置:”

    请注意,应使用“转发”插件代替“代理”,如下所述:


    嘿,我的帖子可能不够清楚。自定义域(mydns.local)包含不在kubernetes群集中的服务。因此,群集需要通过“default.svc.cluster.local”域解析其内部地址,并通过“mydns.local”域解析连接网络中的地址。您的自定义域(mydns.local)是否有domainNameServer