Node.js 无法使用minikube连接到后端

Node.js 无法使用minikube连接到后端,node.js,reactjs,kubernetes,minikube,kubernetes-ingress,Node.js,Reactjs,Kubernetes,Minikube,Kubernetes Ingress,我试图在minikube本地部署一个应用程序。 当我启动minikube时,我可以连接到前端,但不能连接到后端 下面是yaml文件 入口 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress-service annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/rewrite-target:

我试图在minikube本地部署一个应用程序。 当我启动minikube时,我可以连接到前端,但不能连接到后端

下面是yaml文件

入口

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - http:
        paths:
          - path: /
            backend:
              serviceName: client-cluster-ip-service
              servicePort: 3000
          - path: /api/
            backend:
              serviceName: server-cluster-ip-service
              servicePort: 8080

用户界面部署

apiVersion: apps/v1
kind: Deployment
metadata:
  name: client-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: web

  template:
    metadata:
      labels:
        component: web
    spec:
      containers:
        - name: client
          image: registry.gitlab.com/test/test1/test2/app-UI
          ports:
            - containerPort: 3000
      imagePullSecrets:
        - name: gitlab-auth
apiVersion: apps/v1
kind: Deployment
metadata:
  name: server-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: server
  template:
    metadata:
      labels:
        component: server
    spec:
      containers:
        - name: server
          image: registry.gitlab.com/test1/test2/test3/test4-api
          ports:
            - containerPort: 8080
      imagePullSecrets:
        - name: gitlab-auth
用户界面服务

apiVersion: v1
# sets up networking in kubernetes cluster
kind: Service
metadata:
  name: client-cluster-ip-service
spec:
  selector:
    component: web
  ports:
    - port: 3000
      targetPort: 3000
后端部署

apiVersion: apps/v1
kind: Deployment
metadata:
  name: client-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: web

  template:
    metadata:
      labels:
        component: web
    spec:
      containers:
        - name: client
          image: registry.gitlab.com/test/test1/test2/app-UI
          ports:
            - containerPort: 3000
      imagePullSecrets:
        - name: gitlab-auth
apiVersion: apps/v1
kind: Deployment
metadata:
  name: server-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: server
  template:
    metadata:
      labels:
        component: server
    spec:
      containers:
        - name: server
          image: registry.gitlab.com/test1/test2/test3/test4-api
          ports:
            - containerPort: 8080
      imagePullSecrets:
        - name: gitlab-auth
后端服务

apiVersion: v1
kind: Service
metadata:
  name: server-cluster-ip-service
spec:
  type: ClusterIP
  selector:
    component: server
  ports:
    - port: 8080
      targetPort: 8080
我一直在浏览器上看到下面的错误

POST https://192.168.99.111/api/auth/login 404
dispatchXhrRequest  @   xhr.js:155
xhrAdapter  @   xhr.js:16
dispatchRequest @   dispatchRequest.js:49
Promise.then (async)        
request @   Axios.js:55
Axios.<computed>    @   Axios.js:74
wrap    @   bind.js:11
(anonymous) @   LoginForm.tsx:34
callback    @   createBaseForm.js:554
(anonymous) @   createBaseForm.js:579
validateFields  @   createBaseForm.js:541
LoginForm.handleSubmit  @   LoginForm.tsx:17
callCallback    @   react-dom.development.js:147
invokeGuardedCallbackDev    @   react-dom.development.js:196
invokeGuardedCallback   @   react-dom.development.js:250
invokeGuardedCallbackAndCatchFirstError @   react-dom.development.js:265
executeDispatch @   react-dom.development.js:571
executeDispatchesInOrder    @   react-dom.development.js:596
executeDispatchesAndRelease @   react-dom.development.js:695
executeDispatchesAndReleaseTopLevel @   react-dom.development.js:704
forEachAccumulated  @   react-dom.development.js:676
runEventsInBatch    @   react-dom.development.js:844
runExtractedEventsInBatch   @   react-dom.development.js:852
handleTopLevel  @   react-dom.development.js:5029
batchedUpdates$1    @   react-dom.development.js:21463
batchedUpdates  @   react-dom.development.js:2247
dispatchEvent   @   react-dom.development.js:5109
(anonymous) @   react-dom.development.js:21520
unstable_runWithPriority    @   scheduler.development.js:255
interactiveUpdates$1    @   react-dom.development.js:21519
interactiveUpdates  @   react-dom.development.js:2268
dispatchInteractiveEvent    @   react-dom.development.js:5085
POSThttps://192.168.99.111/api/auth/login 404
dispatchXhrRequest@xhr.js:155
xhrAdapter@xhr.js:16
dispatchRequest@dispatchRequest.js:49
Promise.then(异步)
request@Axios.js:55
Axios@Axios.js:74
wrap@bind.js:11
(匿名)@LoginForm.tsx:34
回调@createBaseForm.js:554
(匿名)@createBaseForm.js:579
validateFields@createBaseForm.js:541
LoginForm.handleSubmit@LoginForm.tsx:17
callCallback@react dom.development.js:147
invokeGuardedCallbackDev@react dom.development.js:196
invokeGuardedCallback@react dom.development.js:250
invokeGuardedCallbackAndCatchFirstError@react dom.development.js:265
executeDispatch@react dom.development.js:571
executeDispatchesInOrder@react dom.development.js:596
executeDispatchesAndRelease@react dom.development.js:695
executeDispatchesAndReleaseTopLevel@react dom.development.js:704
foreach@react dom.development.js:676
runEventsInBatch@react dom.development.js:844
runExtractedEventsInBatch@react dom.development.js:852
handleTopLevel@react dom.development.js:5029
BatchedUpdate$1@react dom.development.js:21463
batchedUpdates@react dom.development.js:2247
dispatchEvent@react dom.development.js:5109
(匿名)@react dom.development.js:21520
不稳定的\u runWithPriority@scheduler.development.js:255
interactiveUpdates$1@react dom.development.js:21519
interactiveUpdates@react dom.development.js:2268
dispatchInteractiveEvent@react dom.development.js:5085
1) 当我在没有minikube的情况下运行应用程序时,应用程序运行良好。
2) 当我用minikube运行应用程序并点击时 前端很好。
3) 只要我尝试点击登录按钮,应用程序尝试连接到 后端,我得到上述错误。
4) 由于某些原因,在上运行时无法连接到后端 minikube和我一直在获取未找到的资源错误

192.168.99.111是minikube ip

我是kubernetes的新手,非常感谢您在调试过程中提供的任何帮助

更新

我认为入口控制器有问题 当我在入口控制器日志中看到它时

192.168.99.1-[192.168.99.1]-[10/Jun/2019:00:07:58+0000]“POST/api/auth/login HTTP/1.1”40419http://192.168.99.116/auth/login?redirect=/“”Mozilla/5.0(Macintosh;英特尔Mac OS X 10_14_5)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/74.0.3729.131 Safari/537.36“520 0.001[默认值-server-cluster-ip-service-8080]172.17.0.8:8080 19 0.002 404 702298110b92307929f9817bb50c47ff

相反,它应该是


为什么
/api
会被删除?

这就是
nginx.ingres.kubernetes.io/rewrite-target://
为您所做的。它会删除入口配置中的前缀。您可以删除此注释以在路径中保留
/api/


请参阅:

入口配置没有问题。
您的后端应用程序具有将自身重定向到
/auth/login
路径的规则,如果要添加前缀,则无法通过入口控制器解决此问题。您必须配置后端API,以通过应用程序代码处理这些URL。

我发现了问题。我不想重写