我有一个运行应用程序的 pod,需要连接到另一个虚拟机来下载一些文件。 Vm 和 Aks 位于不同的 VNet 上。 我已经对这些 VNet 进行了对等,并且链接似乎已连接。然而,沟通仍然没有发生。 还有什么我应该考虑的吗?
附加信息:
当 VM 和 AKS 群集位于不同的 VNet 中时,需要 VNet 对等互连,并且您已设置 VNet 对等互连。
检查应用于 AKS 子网和虚拟机子网的 NSG 规则。尽管您使用的是默认规则,但请确保与虚拟机子网关联的 NSG 允许入站 ICMP 流量。默认情况下,NSG 允许出站 ICMP,但可能阻止入站 ICMP。您需要添加入站安全规则以允许来自 AKS 子网的 ICMP(协议号 1)。
但我有一种强烈的感觉,您的虚拟机的防火墙是连接失败的主要原因。检查虚拟机内的防火墙设置以确保其已关闭。
在这里,我在我的 ak 上部署了一个店面应用程序,如您所见,pod 已启动
并且该应用程序可以访问。
因此,如果您的 AKS 群集位于一个 VNet(我们称之为 VNet A)中,而您的 VM 位于另一个 VNet (VNet B) 中,则默认情况下它们将无法通信,因为它们是 Azure 中的单独网段。
要启用它们之间的通信,您需要在 VNet A 和 VNet B 之间设置 VNet 对等互连。
这将允许资源(例如您的 AKS Pod 和 VM)跨 VNet 进行通信,如上图所示,并禁用 VM 内的内部防火墙,现在 Pod 和 VM 都能够相互通信,如下所示-
所以三件事-
参考-