设置: 我有 2 个 Ubuntu 虚拟机位于面向互联网的标准负载均衡器后面。 LB 是区域冗余的,2 个虚拟机在区域 1 和区域 2 中设置为 HA。 虚拟机通过虚拟机规模集启动,整个基础设施通过 Terraform 进行部署。
在虚拟机中的容器上运行的应用程序在端口 5050 上公开。 入站规则设置为允许端口 80、5050 上的流量。 VM位于LB后端池中。
问题: 当虚拟机启动并运行时,我访问控制台,虚拟机无法连接到 Ubuntu 存储库或任何外部包以供下载。 删除和扩展虚拟机 - 同样的问题。
但是,当我删除 LB 规则和 Lb-probe 并重新创建它们时,我立即能够从 ubuntu 存储库或任何其他外部链接下载软件包。 我还删除了一个虚拟机并扩展了新的虚拟机(在重新创建 lb 规则和探针之后)和 ubuntu 软件包,并且 docker 软件包安装成功。
这让我发疯,有人遇到过吗?
最佳答案
当我通过 Azure 门户部署整个基础结构时,无法在同一场景中重现此问题。
根据control outbound connectivity对于标准负载均衡器:
If you want to establish outbound connectivity to a destination outside of your virtual network, you have two options:
- assign a Standard SKU public IP address as an Instance-Level Public IP address to the virtual machine resource or
- place the virtual machine resource in the backend pool of a public Standard Load Balancer.
Both will allow outbound connectivity from the virtual network to outside of the virtual > network.
因此,出现此问题的原因可能是负载均衡器规则首次未生效、配置不正确或未配置面向公众的负载均衡前端 IP。或者,您可以检查您的 vmss 实例是否有防火墙或出站流量限制。
当我配置了这些资源时。我必须关联一个 NSG,将允许的流量列入 VMSS 实例子网的白名单。这将触发标准 LB 开始接收传入流量。另外,我已将升级策略更改为自动
。
希望这些信息可以帮助您。
关于Azure - 无法访问面向互联网的标准负载均衡器后面的虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59255140/