Ingress Nginx私有NLB获取真实IP失败:Proxy协议头部错误及注解不生效
问题排查:AWS私有NLB Proxy协议注解不生效,手动配置正常
核心现象
通过Ingress Nginx控制器暴露VPC2内的私有Nginx到VPC1,配置源IP白名单nginx.ingress.kubernetes.io/whitelist-source-range后,发现Ingress无法获取客户端真实IP。尝试通过以下注解和ConfigMap配置启用NLB的Proxy协议:
# Ingress Nginx ConfigMap配置 config: use-proxy-protocol: "true" real-ip-header: "proxy_protocol" # Service注解 service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: proxy_protocol_v2.enabled=true
同时试过搭配service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*",但均触发错误:
broken header: "" while reading PROXY protocol, client: xx.xx.xx.xx
手动在AWS控制台给NLB目标组启用Proxy协议v2后功能完全正常,但注解无法自动完成配置,怀疑与Ingress Nginx版本有关。
排查方向与解决方案
1. 注解兼容性与版本匹配
不同Ingress Nginx版本对AWS NLB注解的支持存在差异:
- Ingress Nginx <= 0.48.x:推荐使用旧版注解
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*",但该注解仅支持Proxy协议v1,且需确保目标组协议为TCP(NLB默认)。 - Ingress Nginx >= 1.0.0:官方推荐使用
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: proxy_protocol_v2.enabled=true,同时需保证:- ConfigMap中
use-proxy-protocol设为"true" - Service的
externalTrafficPolicy设为Local(避免节点SNAT导致源IP丢失)
- ConfigMap中
2. 验证注解生效条件
- 确认Service类型为
LoadBalancer,且annotations字段无缩进错误,配置正确挂载。 - 避免冲突注解:同时配置
aws-load-balancer-proxy-protocol和aws-load-balancer-target-group-attributes会导致目标组配置混乱,需保留对应版本的正确注解。 - 重新部署Ingress Nginx控制器:修改注解后,重启控制器Pod或重新apply Service/ConfigMap,确保配置被加载。
3. broken header错误原因
当NLB未正确启用Proxy协议,但Ingress Nginx已开启use-proxy-protocol时,会因收到普通HTTP请求而非Proxy协议报文触发该错误。这说明注解未成功将Proxy协议配置到NLB目标组,需重点检查:
- 目标组协议是否为TCP(NLB的Proxy协议仅支持TCP目标组)
- AWS账号是否有足够权限让Ingress控制器修改NLB目标组属性
- 查看控制器日志,是否存在AWS API调用失败的报错(如权限不足)
4. 版本适配验证
若使用Ingress Nginx 1.0+版本,建议完全移除旧版aws-load-balancer-proxy-protocol注解,仅保留:
# Service注解 service.beta.kubernetes.io/aws-load-balancer-scheme: internal service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: proxy_protocol_v2.enabled=true # ConfigMap配置 config: use-proxy-protocol: "true" real-ip-header: "proxy_protocol"
同时确保Service设置externalTrafficPolicy: Local,重新部署控制器后等待NLB目标组配置更新。
内容的提问来源于stack exchange,提问作者Devendra Singh khurana
相关产品推荐
相关产品推荐

