React Native模拟器无法访问Kubernetes端点sanction.dev的原因排查
React Native 无法访问Kubernetes端点sanction.dev的排查方案
问题场景
在React Native Android和iOS模拟器中访问端点sanction.dev时,出现「Network error」错误,现有Kubernetes配置和宿主机/etc/hosts映射如下:
Kubernetes配置
apiVersion: apps/v1 kind: Deployment metadata: name: auth-depl spec: replicas: 1 selector: matchLabels: app: auth template: metadata: labels: app: auth spec: containers: - name: auth image: dockerhub/sanction-auth --- apiVersion: v1 kind: Service metadata: name: auth-srv spec: selector: app: auth ports: - name: auth port: 3000 targetPort: 3000 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-service annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/use-regex: 'true' spec: rules: - host: sanction.dev http: paths: - path: /api/auth/?(.*) pathType: ImplementationSpecific backend: service: name: auth-srv port: number: 3000
宿主机/etc/hosts配置
## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## # 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 127.0.0.1 sanction.dev
排查方向
Ingress Controller端口映射验证
确认Nginx Ingress Controller的端口是否正确映射到宿主机:- 执行命令查看Ingress Controller服务状态:
kubectl get svc -n ingress-nginx - 如果是
NodePort类型,需使用sanction.dev:<NodePort>格式访问;如果是LoadBalancer,确认外部IP是否正常绑定。
- 执行命令查看Ingress Controller服务状态:
模拟器网络访问限制
- Android模拟器:无法直接通过
127.0.0.1访问宿主机,需替换为模拟器网关地址10.0.2.2,测试时可直接使用http://10.0.2.2:<端口>/api/auth/xxx。 - iOS模拟器:确认宿主机防火墙允许80/443端口访问,执行命令验证端口占用:
sudo lsof -i :80
- Android模拟器:无法直接通过
Ingress路径匹配检查
现有Ingress规则仅匹配/api/auth/开头的路径,若请求URL不符合该格式(如直接访问sanction.dev/login)会返回404,被React Native识别为网络错误。可临时修改Ingress路径为/(.*)测试是否能正常访问。后端服务可用性验证
- 确认auth Pod状态正常:
kubectl get pods - 进入Pod内部测试服务是否正常响应:
kubectl exec -it <auth-pod-name> -- curl localhost:3000/api/auth/health
- 确认auth Pod状态正常:
Hosts映射生效问题
- Android模拟器:宿主机hosts不会同步到模拟器,需通过adb推送修改:
(需模拟器开启root权限)adb push /etc/hosts /system/etc/hosts - iOS模拟器:修改宿主机hosts后需重启模拟器才能生效。
- Android模拟器:宿主机hosts不会同步到模拟器,需通过adb推送修改:
内容的提问来源于stack exchange,提问作者spatak
相关产品推荐
相关产品推荐

