首页 > 解决方案 > AKS 将 DNS 名称分配给专用 ClusterIP 地址

问题描述

我不知道如何解决这个问题:我有这个私有 AKS 集群,它有 4 个微服务 (.net5) 和一个前端。这 4 个微服务使用它们的公共 IP 地址通过 HTTP 请求相互通信(不好,因为我希望它们只有一个私有端点,比如microservicename.api.my-namespace.svc.cluster-domain.example)。然后前端(具有公共 DNS 和 IP)应该能够在该私有端点中请求主 API。我需要实现一个解决方案,而且我觉得通过某个端点上的 HTTP 请求在微服务之间进行通信不是一个好的设计模式,所以我也想在这方面提出一些建议。非常感谢

标签: azurekubernetesmicroservicesazure-aks

解决方案


• 在这种情况下,您可以使用 Azure 专用链接服务通过专用终结点在专用 AKS 群集和前端之间建立通信,该终结点将在专用 AKS 群集的子网中公开。

• 仅标准 Azure 负载均衡器支持专用链接服务。不支持基本 Azure 负载均衡器。若要使用自定义 DNS 服务器,请将 Azure DNS IP 168.63.129.16 添加为自定义 DNS 服务器中的上游 DNS 服务器。

• 您可以使用以下命令和私有 DNS 区域或自定义私有 DNS 区域创建由四个微服务组成的私有 AKS 集群:-

'az aks create -n -g --load-balancer-sku standard --enable-private-cluster --enable-managed-identity --assign-identity --private-dns-zone [system|none]' - 与私有 DNS 区域(系统默认值,公共 DNS 区域无)

'az aks create -n -g --load-balancer-sku 标准 --enable-private-cluster --enable-managed-identity --assign-identity --private-dns-zone --fqdn-subdomain '</ p>

具有自定义 DNS 的专用 AKS

• 如果私有DNS 区域与AKS 群集位于不同的订阅中,您需要在两个订阅中注册Microsoft.ContainerServices。此外,您将需要至少具有私有 dns 区域参与者和 vnet 参与者角色的用户分配的身份或服务主体。“fqdn-subdomain”可以与“CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID”一起使用,仅用于为 privatelink..azmk8s.io 提供子域功能

• 接下来,您需要使用可以访问 AKS 群集的 Azure 虚拟网络 (VNet) 的 VM。有多种选项可用于建立与专用群集的网络连接,例如在与 AKS 群集相同的 Azure 虚拟网络 (VNet) 中创建 VM,或者在单独的网络中使用 VM 并设置虚拟网络对等互连。因此,您可以为私有 AKS 群集中的四个微服务创建具有私有终结点的私有链接,并提供与前端 API 的连接。

请参阅以下链接以获取更多详细信息:-

https://docs.microsoft.com/en-us/azure/aks/private-clusters


推荐阅读