解析 kubernetes 集群 (AKS) 中的自定义 dns
Resolve custom dns in kubernetes cluster (AKS)
我们目前在 kubernetes 集群 (AKS) 中有 pods 需要解析两个不同的域。
第一个域是集群域 default.svc.cluster.local,第二个域是 mydns.local
如何实现?
我认为你可以使用 ingress 和 ingress controller 来管理域,path.with ingress 你可以管理多个域并将服务添加到特定域。
这里还分享了从数字海洋设置入口的教程,您可以关注它:
我自己找到了解决方案。
有两种方法可以实现所需的名称解析:
- 如果您的 AKS 群集位于 Azure VNET 中,您可以将 VNET 中的 DNS 设置设置为能够解析您的自定义域的自定义 DNS 服务器。如果您的 Pods 没有指定的 dns 设置,那么解析将以这种方式工作:
首先 Pods 尝试在 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 ConfigMap。几秒钟后,Kubernetes master 总是会将其重置为默认值。如果要在 AKS 中编辑 ConfigMap,则必须将 configmap 命名为 "coredns-custom".
yourdns.server
其实不是服务器。就是domain.server
。 DNS 服务器 IP 在代理设置后面。
您的第二点“2.Modify AKS 群集中的 coreDNS 设置具有以下 json:”
请注意,应使用 "forward" 插件代替 "proxy",如下所述:
我们目前在 kubernetes 集群 (AKS) 中有 pods 需要解析两个不同的域。
第一个域是集群域 default.svc.cluster.local,第二个域是 mydns.local
如何实现?
我认为你可以使用 ingress 和 ingress controller 来管理域,path.with ingress 你可以管理多个域并将服务添加到特定域。
这里还分享了从数字海洋设置入口的教程,您可以关注它:
我自己找到了解决方案。
有两种方法可以实现所需的名称解析:
- 如果您的 AKS 群集位于 Azure VNET 中,您可以将 VNET 中的 DNS 设置设置为能够解析您的自定义域的自定义 DNS 服务器。如果您的 Pods 没有指定的 dns 设置,那么解析将以这种方式工作:
首先 Pods 尝试在 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 ConfigMap。几秒钟后,Kubernetes master 总是会将其重置为默认值。如果要在 AKS 中编辑 ConfigMap,则必须将 configmap 命名为 "coredns-custom".
yourdns.server
其实不是服务器。就是domain.server
。 DNS 服务器 IP 在代理设置后面。
您的第二点“2.Modify AKS 群集中的 coreDNS 设置具有以下 json:”
请注意,应使用 "forward" 插件代替 "proxy",如下所述: