EKS环境下Pod内无法访问内部API的排查咨询
问题排查:Pod内访问内部Ingress返回空响应
我通过Deployment创建了两个Ingress负载均衡器:
- Internal Ingress:用于内部流量负载均衡
- External Ingress:用于外部流量负载均衡
部署完成后,在VPC内部(Pod外)执行curl https://test-internal.test.com/systime能正常获取响应,但在Pod内执行相同命令时,返回错误:
curl: (52) Empty reply from server
已完成的排查操作:
- 在Pod内执行
nslookup test-internal.test.com,域名解析正常 - 从Pod直接telnet到后端端点,连接成功
待检查项
- Ingress Controller的网络限制:检查Ingress Controller的Deployment/DaemonSet是否配置了节点反亲和,导致Pod到Ingress的流量路径异常;同时查看是否有NetworkPolicy规则拦截了Pod到Ingress服务的流量
- TLS证书信任与配置:如果Internal Ingress使用自签名证书,在Pod内尝试执行
curl https://test-internal.test.com/systime -k跳过证书验证,看是否能获取响应;同时检查Ingress的TLS Secret是否正确挂载、证书链是否完整 - Service ClusterIP直接访问测试:获取Internal Ingress对应Service的ClusterIP,在Pod内执行
curl https://<cluster-ip>/systime -k(HTTPS场景),对比域名访问的差异,排查是否是Ingress路由规则问题 - Ingress Controller日志分析:查看Ingress Controller Pod的日志,确认是否接收到来自Pod的请求,以及请求处理时是否出现路由匹配失败、后端服务超时/返回空等异常
- Pod网络与DNS缓存:尝试重启Pod后再次测试,排除DNS缓存异常;检查Pod使用的CNI插件是否有特殊配置,导致流量转发逻辑异常
- 后端服务源IP限制:检查后端服务的代码或配置,是否存在仅允许VPC节点IP访问、拒绝Pod IP段请求的访问控制规则
- TCP层抓包分析:在Pod内执行
tcpdump host test-internal.test.com,抓取请求交互数据包,分析是否存在SYN-ACK后无数据返回、连接被重置等TCP层异常
内容的提问来源于stack exchange,提问作者rahuls_
相关产品推荐
相关产品推荐

