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

时间:2021-04-30 17:32:53

标签: azure kubernetes azure-aks azure-virtual-network azure-vpn

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

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

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

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

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

1 个答案:

答案 0 :(得分: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 查询。您可以为 IaaS Windows VM 提供 DNS 角色或将绑定配置为 DNS 的 Linux VM货运代理。 This template 展示了如何创建一个 DNS 服务器,将查询转发到 Azure 的 Linux VM 内部 DNS 服务器。有关 Windows 虚拟机上的 DNS 转发器,请参阅 this

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

相关问题