AKS 可以配置为与 Azure 专用 DNS 区域一起使用吗?

use*_*383 2 aws-fargate azure-aks

我正在将一个应用程序移植到 Azure,该应用程序最初是为 Amazon 的 Fargate 设施开发的。Fargate 的一个功能是能够创建一个私有 DNS 区域,并使其创建的服务名称自动注册到该区域。这允许任何 Fargate 服务以及同一 VPC/子网中的其他 VM 能够使用service-name.zone-name.

这对于我们在产品中运行的 VM 特别有用,因为它们可以通过自动生成的私有 DNS 名称直接对 Fargate 中运行的微服务进行 REST 调用。

我们在 Azure 实现中使用 AKS,我发现 kubernetes 通过创建service-name.namespace映射到服务集群 IP的表单记录为其管理的容器提供了类似的机制。这在 kubernetes 网络中运行良好,但我们在同一虚拟网络中运行的任何 VM 都不知道这些 AKS 服务别名。

所以我的问题是:有没有办法利用 Azure 的私有 DNS 设施并将其绑定到 AKS 中,以便位于同一虚拟网络中的 VM 也可以通过名称而不是 IP 地址来引用 Kubernetes 服务?

小智 5

您可以为此使用外部DNS。诀窍是使用此处提供的舵图并将其添加publishInternalServices=true到您的 values.yaml。这样,ClusterIP 的服务将添加到您的内部 Azure DNS 区域。

  • 对于那些在私有 DNS 区域中寻找此功能的人,有一个 [external-dns 上的开放问题](https://github.com/kubernetes-incubator/external-dns/issues/1073)。目前不支持,仅支持 Azure 公共区域。 (2认同)