【问题标题】:Can AKS be configured to work with an Azure private DNS zone?是否可以将 AKS 配置为使用 Azure 专用 DNS 区域?
【发布时间】:2018-11-13 22:43:40
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: aws-fargate azure-aks


    【解决方案1】:

    您可以为此使用external-dns。诀窍是使用可用的舵图 here 并将 publishInternalServices=true 添加到您的 values.yaml 中。这样,ClusterIP 的服务将被添加到您的内部 Azure DNS 区域。

    【讨论】:

    • 我试试看。感谢您的领导。
    • 如果你能支持我的回答,如果它会带来一些改进,那就太棒了。我正在构建堆栈溢出代表 :) 谢谢
    • 如果这能引导我找到解决方案,我一定会给你一个赞成票。我只是有机会快速阅读这篇文章,而我最大的担忧是它谈到了使用外部 DNS。我不想为我的服务公开可公开访问的名称,而是使用私有 DNS 区域并生成仅在我的虚拟机和集群所在的 vnet 中可见的名称。
    • 使用 ingresses 和 external-dns 观察程序,这应该与专用 dns 区域(预先创建的 VNET 中的 AKS 集群的“高级”网络类型)一起正常工作
    • 对于那些使用私有 DNS 区域寻找此功能的人,有一个 open issue on external-dns。目前不支持,仅支持 Azure 公共区域。
    猜你喜欢
    • 2018-10-18
    • 1970-01-01
    • 2018-05-03
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2021-08-08
    • 2020-05-07
    相关资源
    最近更新 更多