我正在将一个应用程序移植到 Azure,该应用程序最初是为 Amazon 的 Fargate 设施开发的。 Fargate 的一项功能是能够创建私有(private) DNS 区域,并让其创建的服务名称自动注册到该区域。这允许任何 Fargate 服务以及同一 VPC/子网中的其他虚拟机能够使用 service-name.zone-name
按名称引用服务。
这对于我们在产品中运行的虚拟机特别有用,因为它们可以通过自动生成的私有(private) DNS 名称直接对 Fargate 中运行的微服务进行 REST 调用。
我们在 Azure 实现中使用 AKS,我发现 kubernetes 通过创建映射到的 service-name.namespace
形式的记录,为其管理的容器提供了类似的机制服务的集群IP。这在 kubernetes 网络中运行良好,但我们在同一虚拟网络中运行的任何虚拟机都不知道这些 AKS 服务别名。
所以我的问题是:有没有办法利用 Azure 的私有(private) DNS 设施并将其绑定(bind)到 AKS,以便位于同一虚拟网络中的虚拟机也可以通过名称而不是 IP 地址引用 Kubernetes 服务?
最佳答案
您可以使用external-dns为了这。诀窍是使用可用的 Helm chart here并将 publishInternalServices=true
添加到您的values.yaml。这样 ClusterIP 的服务将被添加到您的内部 Azure DNS 区域。
关于aws-fargate - AKS 是否可以配置为与 Azure 私有(private) DNS 区域配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53290626/