azure - 如何配置 Azure 应用程序网关以允许连接到容器实例
问题描述
我有一个10.0.0.0/16
具有多个子网的专用网络 ( )。我在10.0.0.0/24
子网中配置了一个应用程序网关,我想10.0.2.0/24
通过 HTTP 将子网中的容器实例公开到 Internet。
网关只有一个 HTTP 规则,只是将 80:80 从 Internet 映射到后端池。在“后端运行状况”部分中,我的容器(通过 IP 地址添加)的状态未知,并显示以下错误:
无法检索健康状态数据。检查 NSG/UDR 是否存在阻止从 Internet 访问端口 65503-65534 到应用程序网关。
最初我没有设置 NSG,但是在设置一个(甚至允许任何:任何)之后并没有解决状态检查问题。
在浏览器中打开 url 时出现 502 Bad Gateway 错误。
注意:我已将不属于 VNet 的容器实例添加到应用程序网关,尽管在后端池中也显示未知状态,但请求实际上已重定向到容器,因此我几乎可以肯定我在 VNet 中配置错误.
注意2:我已经推送了一个测试容器,并且测试容器可以到达我试图在同一子网中公开的容器,所以容器和应用程序网关之间出现了问题。
我的问题是我必须设置的 NSG 规则
- 使容器对健康检查可见
- 使应用程序网关和容器之间的重定向工作
解决方案
确实没有什么可配置错误的,您可以在其中一个子网中创建一个 vm(创建第三个)并测试它是否可以访问容器实例?如果它可以为 0,这可能是平台限制,tbh。
但是查看错误:您应该从 Vnet 中分离所有 NSG\User Defined 路由(为简单起见)并进行其他几项检查:https ://docs.microsoft.com/en-us/azure/application-gateway/application-网关后端健康故障排除#backend-health-status-unknown
推荐阅读
- oracle - 创建具有外键约束的表字段
- appium - WebView 在 Appium Inspector 中被视为原生,无法切换到 webview 来查找元素
- css - 在 a 中使用 CSS
- c# - 如何使用 C# 创建一个对象以统一在两个位置之间移动,为什么我的代码不起作用?
- c# - 使用带有嵌入字体的 iText 提取文本
- pandas - Pandas 跨时间窗口聚合用户日志
- xpages - XPages REST viewJsonService
- c# - 无法读取请求正文 - 身份服务器回调 url
- flutter - 在颤动的模态底页中实现WebView
- java - IntelliJ 插件开发:上下文项在 IDEA 中显示,但在 WebStorm 中不显示