【问题标题】:Azure App Service doesn't see Worker Roles in VNETAzure 应用服务在 VNET 中看不到辅助角色
【发布时间】:2018-07-09 19:00:39
【问题描述】:

我需要配置 Orleans 集群以连接到 Azure 应用服务。问题是网络是我的弱点;)。 我已经使用 Azure Worker Role(4 个实例)配置了一个 Orleans Silo,监听默认端口:

.ConfigureEndpoints(siloPort: 11111, gatewayPort: 30000)

我已使用以下设置将辅助角色分配给 Azure VNET(经典):
地址范围 10.0.0.0/24
Subnet-1 10.0.0.0/27(工作角色在此处分配为网络安全组的一部分)
指向站点范围 10.0.1.0/24
GatewaySubnet 10.0.0.32/29(加入同一个网络安全组)

我看到这 4 个实例在 Subnet-1 中使用了正确的 IP:10.0.0.4 到 10.0.0.7。
应用服务已分配给此 VPN(“同步证书”)并报告:
路由到 VNET 的 IP 地址
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

我看到应用服务尝试连接到 10.0.0.7:30000 我通过检查应用程序诊断和使用 tcpping 测试了应用程序无法访问 10.0.0.7:30000。(无法连接到 10.0.0.7:30000:AccessDenied)
我肯定在这里遗漏了一些基本的东西,我已经有十年没有配置 IP了!
(这类似于Vnet between Virtual Machine and App Service in Azure,但在这种情况下,我确实想配置 VNet,而且我有一个具体的实际问题)

【问题讨论】:

  • 也许这份文件Integrate your app with an Azure Virtual Network可以提供帮助。
  • 我已经读过了,我没有看到我正在做的任何与它不一致的事情。
  • 能否在 NSG 入站规则中允许端口 30000、11111?
  • 您能否在您的问题中描述“应用服务已分配给此 VPN(“同步证书”)”?您的应用程序是否与另一个 Vnet 集成?您似乎已将 Azure VNET (Classic) 与 Worker Role 集成?
  • 我的意思是,在应用服务选项的网络页面中,我将此应用分配给了这个经典 VNET。我还为 Subnet-1 分配了 Worker Role 和 NSG。根据您的建议,我现在也允许这两个端口(入站),并重新启动了 Worker 角色。仍然出现同样的错误。

标签: azure azure-virtual-network orleans


【解决方案1】:

对于网络,我建议验证以下内容:

  • 您已将您的应用程序集成到经典 VNET 中,并在经典 VNet 中启用指向站点,如下DOC
  • 确认奥尔良集群中的所需端口是否正在侦听。您可以通过此website 在奥尔良集群方面进行故障排除。
  • 防火墙(VM 或主机杠杆)和 NSG 规则以允许所需端口。从this 获取更多详细信息。

更多参考,Create a VNET and access an Azure VM hosted within it from an App Services Web App

【讨论】:

  • 谢谢。我会在星期六之前检查并更新具体的解决方案。我怀疑服务器有问题。
【解决方案2】:

在详细检查了 Nancy 提供的所有文件后,我最终通过 VM 连接到其中一个云服务 VM(筒仓)。我需要允许它通过 NSG。我用 netstat -aon 检查了该服务正在侦听预期的端口。我可以 ping 服务的其他实例。
然后我下载了 tcping 并尝试连接到从该实例到其他实例的预期端口。它被阻止了。由于我在同一个孤岛中,我现在可以将问题定位到“防火墙(VM 或主机级别)”(Nancy 提到的可能问题之一)。
解决方案是在云端配置端点服务定义 (csdef),因此 VM 防火墙阻止了对这些端口的访问。我天真地认为在 SiloBuilder 级别配置它们就足够了,但是 SiloBuilder 是应用程序层,它不会更新它正在运行的 VM。

结果是,现在 netstat -aon 将与 11111 的服务连接显示为“已建立”,而不仅仅是“侦听”,并且 VM 的防火墙正在显示新规则。工作角色实例可以相互连接。
应用服务(网络应用)仍然无法连接到任何工作角色的主机:端口。我尝试删除 NSG,但这导致实例无法再次看到彼此,因此我将 NSG 重新分配给子网 1 和 GatewaySubnet。
我尝试的最后一件事是断开应用服务与 VNET 的连接并重新连接。我在这一步遇到了其他(不相关的)错误,我会在整理它们时更新帖子。

【讨论】:

    猜你喜欢
    • 2016-04-04
    • 2013-08-07
    • 2020-08-28
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    相关资源
    最近更新 更多