【发布时间】:2019-04-10 12:04:28
【问题描述】:
我们目前在 kubernetes 集群 (AKS) 中有 Pod,需要解析两个不同的域。
第一个域连接集群域 default.svc.cluster.local,第二个域连接到 mydns.local
如何做到这一点?
【问题讨论】:
标签: kubernetes dns azure-aks kube-dns coredns
我们目前在 kubernetes 集群 (AKS) 中有 Pod,需要解析两个不同的域。
第一个域连接集群域 default.svc.cluster.local,第二个域连接到 mydns.local
如何做到这一点?
【问题讨论】:
标签: kubernetes dns azure-aks kube-dns coredns
我自己找到了解决方案。
有两种方法可以实现所需的名称解析:
首先,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 ConfigMap。 Kubernetes master 总是会在几秒钟后将其重置为默认值。如果要在 AKS 中编辑 ConfigMap,则必须将 configmap 命名为“coredns-custom”。
yourdns.server 实际上不是服务器。它是domain.server。 DNS 服务器 IP 在代理设置后面。
【讨论】:
我认为您可以使用入口和入口控制器来管理域和路径。使用入口您可以管理多个域并将服务附加到特定域。
这里还分享了从数字海洋设置入口的教程,你可以关注它:
【讨论】:
您的第二点“2.使用以下 json 修改 AKS 群集中的 coreDNS 设置:”
请注意,应使用“转发”插件代替“代理”,如下所述:
【讨论】: