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

AKS网络策略失效:无法限制Pod仅允许特定IP地址访问

AKS网络策略不生效的原因及解决办法

核心问题:LoadBalancer流量的SNAT转换

你配置的网络策略针对的是Pod的直接入站流量,但通过LoadBalancer类型的服务访问时,AKS的Azure CNI会对流量做源地址转换(SNAT):外部客户端的IP会被替换成AKS节点的IP,导致Pod接收到的源IP不是你PC的真实IP,所以你的ipBlock规则根本匹配不到。

解决方法:保留客户端源IP

修改你的LoadBalancer服务,启用externalTrafficPolicy: Local,让负载均衡器直接将流量转发到Pod所在节点,同时保留客户端的真实IP。

修改服务配置

编辑你的LoadBalancer服务yaml,添加externalTrafficPolicy: Local字段:

apiVersion: v1
kind: Service
metadata:
  name: [你的服务名称]
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local  # 关键配置
  selector:
    # 替换为你的Pod标签
  ports:
  - port: [服务端口]
    targetPort: [Pod端口]

应用修改:

kubectl apply -f [服务yaml文件路径]

注意事项

  • 启用该配置后,负载均衡器只会将流量转发到运行目标Pod的节点;如果你的Pod只在一个节点上运行,只有该节点会接收外部流量。
  • 若后续扩容Pod到多个节点,负载均衡器会自动更新后端节点列表。

额外排查点

  1. 验证网络策略状态:

    kubectl get networkpolicy allow-from-my-pc
    

    确认策略已存在且无异常。

  2. 验证Pod标签:

    kubectl get pods --show-labels | grep [你的Pod名称]
    

    确认access=restricted标签已正确绑定。

  3. 确认集群网络策略配置:

    az aks show --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --query networkProfile.networkPolicy
    

    返回值应为"azure",确保集群确实启用了Azure网络策略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:43:13