有了这个 Kubernetes 配置,尝试从 React Native Android 和 iOS 模拟器访问端点 sanction.dev 但不成功。获取:网络错误
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
React Native 无法访问 Kubernetes 端点的原因是什么?
问题是 android 或 ios 模拟器在虚拟环境中模拟完整的系统。所以它是一个具有自己的网络上下文和自己的 127.0.0.1 的虚拟机。
我猜您想访问运行 kubernetes 集群的主机和模拟器。确保您需要在 android/ios 虚拟机中配置主机系统的 IP。
您需要弄清楚将模拟器连接到主机系统的虚拟网络中主机系统的 IP 地址是什么。 您也可以使用系统的外部 IP 进行尝试。但这个 IP 可能会改变,因为它可能是动态分配的。