You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure NSG规则不生效:Kubernetes集群公网IP无法访问问题

问题背景

我部署了包含Nginx服务器的Kubernetes集群,通过LoadBalancer类型的服务绑定公网IP 8.8.8.8,域名已指向该IP。所有流向Kubernetes节点的流量均经过网络安全组(NSG),当前NSG规则如下:

PriorityNamePortProtocolSourceDestinationAction
900AllowAllIngressAnyAnyAny8.8.8.8Allow
1000DenyAllInboundAnyAnyInternetAnyDeny

预期结果

访问该公网IP或对应域名可正常连接到Nginx服务。

实际情况

无法连接该IP;将DenyAllInbound规则改为允许后连接正常,改回拒绝则连接失败。


问题原因

NSG规则按优先级数值越小越先执行,但当前第一条AllowAllIngress规则无法匹配实际入站流量:

  • Kubernetes LoadBalancer的公网IP 8.8.8.8 是流量转发入口,外部Internet流量到达该IP后,会被转发到Kubernetes节点的私网IP,而非直接以8.8.8.8作为目标地址流向节点。
  • 第一条规则的destination设置为8.8.8.8,完全匹配不到实际流向节点私网IP的流量,因此流量会触发后续优先级1000的DenyAllInbound规则被拒绝。

解决方案

修改AllowAllIngress规则的destination字段,使其覆盖Kubernetes节点的私网IP范围,同时建议缩小端口范围以提升安全性:

  1. 先获取集群所有节点的私网IP段(例如10.0.0.0/24)
  2. 更新NSG规则为:
    PriorityNamePortProtocolSourceDestinationAction
    900AllowNginxIngress80,443TCPInternet10.0.0.0/24Allow
    1000DenyAllInboundAnyAnyInternetAnyDeny

若需快速验证,可临时将AllowAllIngress的destination改为Any,确认连接正常后再调整为精准的节点IP范围和端口。

内容的提问来源于stack exchange,提问作者Bok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:22:34