无法从连接到 Azure VPN 的本地计算机(在家庭网络上)访问私有 AKS 集群

Cannot access Private AKS cluster from Local Machine (on home network) connected to Azure VPN

我在 Azure 上的 VNET 中部署了一个私有 AKS 集群。部署后,默认情况下会创建一个专用端点和一个专用 DNS 区域,因此可以从属于同一 VNET 的 VM 访问集群。 (我在与 AKS 群集相同的 VNET 中部署了一个 VM,并且“kubectl”命令在其中运行。

我的要求是我想从我的本地计算机(连接到我的家庭网络)执行“kubectl”命令,并连接到连接到 VNET 的 VPN。

我的机器可以与 VNET 中的资源通信,但似乎无法解析私有集群的 FQDN。

我在某处读到,在同一个 VNET 中设置 DNS 转发器可以帮助解决从本地计算机发出的 DNS 查询,然后可以由 Azure DNS 解决。这是解决这个问题的方法吗?或者有更好的方法解决这个问题吗?

如果有人能给我一个解决这个问题的行动计划,那将会很有帮助。

从本地计算机向私有 AKS 集群执行“kubectl”命令的更好方法是使用 AKS Run Command (Preview)。此功能允许您通过 AKS API 远程调用 AKS 群集中的命令。此功能提供了一个 API,例如,它允许您从远程笔记本电脑为私有集群执行即时命令。在使用它之前,您需要在您的订阅上启用 RunCommandPreview 功能标志并在本地安装 aks-preview 扩展。但是,有一个限制,即 AKS-RunCommand 不适用于启用了 AKS 托管 AAD 和专用 link 的群集

在这种情况下,如果您想从本地网络解析私有集群的 FQDN,您可以 select 在本地使用主机文件(用于测试)或使用您的 DNS转发器覆盖私人 link 资源的 DNS 解析,例如 this.

DNS 转发器将负责通过服务器级转发器对 Azure 提供的 DNS 168.63.129.16 进行的所有 DNS 查询。您可以为 IaaS Windows VM 提供 DNS 角色或 Linux 绑定配置为 DNS 转发器的虚拟机。 This template shows how to create a DNS server that forwards queries to Azure's internal DNS servers for Linux VM. Refer to this Windows VM 上的 DNS 转发器。

如果您的本地网络中有内部 DNS 服务器。本地 DNS 解决方案需要通过 public DNS 区域(例如 {region}.azmk8s.io)的条件转发器将 DNS 流量转发到 Azure DNS。条件转发器引用部署在 Azure 中的 DNS 转发器。您可以阅读 this blog 有关 DNS 配置部分的更多详细信息。