无法从连接到 Azure *** 的本地计算机(在家庭网络上)访问专用 AKS 群集
Posted
技术标签:
【中文标题】无法从连接到 Azure *** 的本地计算机(在家庭网络上)访问专用 AKS 群集【英文标题】:Cannot access Private AKS cluster from Local Machine (on home network) connected to Azure *** 【发布时间】:2021-07-24 01:09:38 【问题描述】:我在 Azure 上的 VNET 中部署了一个私有 AKS 群集。部署后,默认情况下会创建一个私有端点和一个私有 DNS 区域,因此可以从属于同一 VNET 的 VM 访问集群。 (我有一个 VM 部署在与 AKS 集群相同的 VNET 中,并且“kubectl”命令在其中工作。)
我的要求是我想从我的本地机器(连接到我的家庭网络)执行“kubectl”命令,并连接到连接到 VNET 的 ***。
我的机器可以与 VNET 中的资源通信,但似乎无法解析专用集群的 FQDN。
我在某处读到,在同一 VNET 中设置 DNS 转发器可以帮助解决从本地计算机发出的 DNS 查询,然后可以由 Azure DNS 解析。这是解决这个问题的方法吗?或者有没有更好的方法来解决这个问题?
如果有人能给我一个行动计划来解决这个问题,那真的很有帮助。
【问题讨论】:
【参考方案1】:从本地计算机到私有 AKS 群集执行“kubectl”命令的更好方法是使用 AKS Run Command (Preview)。此功能允许您通过 AKS API 远程调用 AKS 群集中的命令。此功能提供了一个 API,例如,允许您从远程笔记本电脑为私有集群执行即时命令。在使用它之前,您需要在您的订阅上启用RunCommandPreview
功能标志并在本地安装aks-preview
扩展。但是,AKS-RunCommand 不适用于启用了 AKS 托管 AAD 和专用链接的群集。
在这种情况下,如果您想从本地网络解析私有集群的 FQDN,您可以选择在本地使用 hosts 文件(用于测试)或使用您的 DNS 转发器来覆盖 DNS 解析对于像 this 这样的私有链接资源。
DNS 转发器将负责通过服务器级转发器到 Azure 提供的 DNS 168.63.129.16
的所有 DNS 查询。您可以配置具有 DNS 角色的 IaaS Windows VM 或将绑定配置为 DNS 转发器的 Linux VM。 This template 展示了如何创建一个 DNS 服务器,将查询转发到用于 Linux VM 的 Azure 内部 DNS 服务器。有关 Windows VM 上的 DNS 转发器,请参阅 this。
如果您的本地网络中有内部 DNS 服务器。本地 DNS 解决方案需要通过公共 DNS 区域的条件转发器将 DNS 流量转发到 Azure DNS(例如region.azmk8s.io
)。条件转发器引用 Azure 中部署的 DNS 转发器。您可以阅读this blog 了解有关 DNS 配置部分的更多详细信息。
【讨论】:
以上是关于无法从连接到 Azure *** 的本地计算机(在家庭网络上)访问专用 AKS 群集的主要内容,如果未能解决你的问题,请参考以下文章
Azure DevOps Artifact Feed 在 Visual Studio 中给出 500 错误
Azure App Services无法连接到Azure SQL数据库