azure - AKS 将 DNS 名称分配给专用 ClusterIP 地址
问题描述
我不知道如何解决这个问题:我有这个私有 AKS 集群,它有 4 个微服务 (.net5) 和一个前端。这 4 个微服务使用它们的公共 IP 地址通过 HTTP 请求相互通信(不好,因为我希望它们只有一个私有端点,比如microservicename.api.my-namespace.svc.cluster-domain.example)。然后前端(具有公共 DNS 和 IP)应该能够在该私有端点中请求主 API。我需要实现一个解决方案,而且我觉得通过某个端点上的 HTTP 请求在微服务之间进行通信不是一个好的设计模式,所以我也想在这方面提出一些建议。非常感谢
解决方案
• 在这种情况下,您可以使用 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 群集位于不同的订阅中,您需要在两个订阅中注册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 的连接。
请参阅以下链接以获取更多详细信息:-
推荐阅读
- python - 从 Python 中用 BeautifulSoup 创建的列表中获取整数
- c - 无法访问地址处的内存
- xml - MSDeploy - 在同一部署中转换配置两次
- java - 如何在不使用 Android 中的任何 3rd 方库的情况下从基于 json 的 api 获取 json 数据?
- r - R- 如何在不使用 ggmap 的情况下使用 ggplot 和 sf 获得具有州界的美国地图?
- javascript - javascript仅通过请求scrape / webcrawl登录到没有浏览器的网页
- java - Spring Autowire 返回 Null 除非窗口直接通过 init 方法加载
- bash - 命令未在 bash 脚本中找到
- python - 在 Colab 中运行深度学习 CNN 模型期间的内存使用情况
- mongodb - allowDiskUse 对 mongodb 中的 find() 方法有效吗?