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

NGINX Ingress网络策略访问限制异常问题求助

问题解决方案

核心原因分析

LoadBalancer类型的Ingress在云环境中通常会经过SNAT(源地址转换),导致Ingress Controller Pod接收到的请求源IP变为Worker节点或LB集群内部IP;同时可能存在标签不匹配、端口名称错误、多策略冲突等问题,导致添加IP后仍无法访问。

分步解决步骤

1. 验证Pod标签匹配性

执行命令确认Ingress Controller Pod的标签与Network Policy中的podSelector完全一致(标签大小写、键值对必须完全匹配):

kubectl get pods -n ingress-nginx --show-labels

如果标签不匹配,修改Network Policy中的matchLabels为实际Pod标签。

2. 替换端口名称为数字端口

部分Ingress Controller的Pod端口名称并非http/https,直接使用数字端口更稳妥。修改Network Policy的ports段:

ports:
  - protocol: TCP
    port: 80
  - protocol: TCP
    port: 443

3. 补充所有必要的IP段到规则中

需要同时允许客户端真实IP、所有Worker节点IP、LoadBalancer的集群内部IP:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: ingress-access
  namespace: ingress-nginx
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: ingress-nginx
      app.kubernetes.io/component: controller
      app.kubernetes.io/instance: nginx-ingress
  policyTypes:
    - Ingress
  ingress:
  - from:
    - ipBlock:
        cidr: 11.11.11.11/32  # 你的客户端真实IP
    - ipBlock:
        cidr: 22.22.22.22/32  # Worker节点IP,如有多个需全部添加
    - ipBlock:
        cidr: 10.0.0.10/32    # LoadBalancer的ClusterIP,通过`kubectl get svc -n ingress-nginx`获取
    ports:
      - protocol: TCP
        port: 80
      - protocol: TCP
        port: 443

4. 检查是否存在多策略冲突

执行命令查看当前命名空间下所有Network Policy,确认没有其他策略阻止流量(Kubernetes中多个Network Policy为逻辑与关系,需满足所有允许规则):

kubectl get networkpolicies -n ingress-nginx

5. 配置Ingress Controller保留真实客户端IP(可选优化)

修改Ingress Controller的Service,启用externalTrafficPolicy: Local,让LB直接转发请求到运行Ingress Controller的Worker节点,避免SNAT,此时仅需在Network Policy中添加你的客户端IP即可:

kubectl patch svc nginx-ingress-controller -n ingress-nginx -p '{"spec":{"externalTrafficPolicy":"Local"}}'

注意:该配置会让流量仅分发到运行Ingress Controller Pod的Worker节点,需确保Pod分布满足可用性需求。

6. 重新部署策略并测试

kubectl apply -f your-network-policy.yaml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:30:45