Azure - 无法访问面向互联网的标准负载均衡器后面的虚拟机

标签 azure high-availability azure-load-balancer

设置: 我有 2 个 Ubuntu 虚拟机位于面向互联网的标准负载均衡器后面。 LB 是区域冗余的,2 个虚拟机在区域 1 和区域 2 中设置为 HA。 虚拟机通过虚拟机规模集启动,整个基础设施通过 Terraform 进行部署。

在虚拟机中的容器上运行的应用程序在端口 5050 上公开。 入站规则设置为允许端口 80、5050 上的流量。 VM位于LB后端池中。

问题: 当虚拟机启动并运行时,我访问控制台,虚拟机无法连接到 Ubuntu 存储库或任何外部包以供下载。 删除和扩展虚拟机 - 同样的问题。

Load balancer rules 负载均衡器规则

Load balancer probe 负载均衡器运行状况探测

但是,当我删除 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 开始接收传入流量。另外,我已将升级策略更改为自动

enter image description here

希望这些信息可以帮助您。

关于Azure - 无法访问面向互联网的标准负载均衡器后面的虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59255140/

相关文章:

sql-server - Azure 数据工厂。导入到 SQL DB 时转换日期格式

azure - 使用 python 将文件从 blob 容器复制到另一个容器

子网内的 Azure 负载均衡器

azure - 在 C# 中检索 Azure VM 的 Azure 负载均衡器 NAT 端口

visual-studio - 错误 MSB4096 : . .. 未定义元数据 "Name"的值

java - 在 Java 中验证 Azure AD 签名

java - 使用 jTDS 连接到 SQL Server 2012 可用性组监听器

high-availability - Google Cloud Bigtable 持久性/可用性保证

java - MongoDB SDK 故障转移不起作用

azure - 无法访问 AKS 上 LoadBalancer 类型的 Kubernetes 服务