AKS集群中nginx-ingress配置ApplicationInsightsAvailability服务标签失效问题
问题根本原因
loadBalancerSourceRanges是Kubernetes LoadBalancer类型服务在Azure平台对应的负载均衡层级源IP过滤规则,优先级高于NSG(网络安全组)规则:流量首先经过Azure负载均衡的源IP校验,只有在loadBalancerSourceRanges列表内的IP段才能通过负载均衡层,进入后续的NSG校验链路。- 你配置的
service.beta.kubernetes.io/azure-allowed-service-tags注解,作用是在服务关联的NSG上添加对应服务标签的允许入站规则。但可用性测试的流量属于ApplicationInsightsAvailability服务标签对应的IP段,这些IP不在你配置的loadBalancerSourceRanges列表中,所以在负载均衡层就被直接拦截,根本到不了NSG层,因此NSG上的服务标签规则完全不会生效。 - 第三个测试的结果也可以验证这个逻辑:当你不使用
loadBalancerSourceRanges,而是直接在NSG上手动配置IP段白名单+通过注解添加服务标签规则时,负载均衡层没有额外的IP过滤限制,流量到达NSG后会匹配所有允许规则,因此IP白名单和可用性测试流量都能正常通过。
推荐解决方案
如果要同时满足IP白名单和服务标签放行的需求,不要使用loadBalancerSourceRanges配置,改为完全通过NSG管理入站规则即可:
- 删除nginx-ingress服务的
loadBalancerSourceRanges字段配置 - 保留
service.beta.kubernetes.io/azure-allowed-service-tags注解,自动添加服务标签放行规则 - 手动在Ingress服务关联的NSG上添加入站IP段允许规则
内容的提问来源于stack exchange,提问作者Karl Xu
相关产品推荐
相关产品推荐

