【问题标题】:404 Not Found nginx/1.19.0 istio spring boot404 Not Found nginx/1.19.0 istio spring boot
【发布时间】:2020-10-21 00:20:34
【问题描述】:

我尝试在前端添加 reactjs,在后端添加 spring boot,但由于某种原因,我在尝试在 AWS 顶部安装 Istio 的 Kubernetes 上添加两者时出现以下错误。

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: user-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
    - port:
        number: 80
        name: http
        protocol: HTTP
      hosts:
        - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: userhub-app
spec:
  hosts:
    - "*"
  gateways:
    - developer-gateway
  http:
    - match:
        - uri:
            prefix: /
        - uri:
            exact: /api/v1/users
      route:
        - destination:
            host: userhub-app
            port:
              number: 80

这里也是spring boot的yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongodb
  labels:
    appdb: mongodb
spec:
  replicas: 1
  selector:
    matchLabels:
      appdb: mongodb
  template:
    metadata:
      labels:
        appdb: mongodb
    spec:
      containers:
        - name: mongodb
          image: mongo:3.6.6
          ports:
            - containerPort: 27017
---
apiVersion: v1
kind: Service
metadata:
  name: mongodb
  labels:
    app: mongodb
spec:
  ports:
    - port: 27017
      protocol: TCP
  selector:
    appdb: mongodb
---
apiVersion: v1
kind: Service
metadata:
  name: users
  labels:
    app: users
    service: users
spec:
  ports:
    - port: 8080
      name: http
  selector:
    app: users
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: users
  labels:
    account: users
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: users-v1
  labels:
    app: users
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: users
      version: v1
  template:
    metadata:
      labels:
        app: users
        version: v1
    spec:
      serviceAccountName: user-hub
      containers:
        - name: ratings
          image: docker87/users
          imagePullPolicy: IfNotPresent
          env:
            - name: MONGODB_HOST
              value: mongodb
            ports:
              - containerPort: 8080

这是 react 应用的 yaml 文件

apiVersion: v1
kind: Service
metadata:
  name: users-app
  labels:
    app: users-app
spec:
  ports:
    - port: 80
      name: http
  selector:
    app: users-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: users-app
spec:
  selector:
    matchLabels:
      app: users-app
  replicas: 1
  template:
    metadata:
      labels:
        app: users-app
        version: v1
    spec:
      containers:
        - name: user-app
          image: docker87/client
          resources:
            requests:
              cpu: "100m"
          imagePullPolicy: Always
          ports:
            - containerPort: 80

当我将 react 应用程序部署到 Istio 时,我看到了该应用程序,但是当我尝试部署 Spring Boot 后端时,我收到 404 Nginx 错误,知道在这种情况下我可能做错了什么吗?

【问题讨论】:

    标签: amazon-web-services kubernetes istio


    【解决方案1】:

    我会先修复您的网关和虚拟服务,因为它没有正确配置。

    要改变的地方:

    • 虚拟服务网关必须与网关名称​​匹配
    • 虚拟服务 route.destination.host 应该与您的服务名称匹配。

    所以它看起来像这样:

    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: user-gateway
    spec:
      selector:
        istio: ingressgateway 
      servers:
        - port:
            number: 80
            name: http
            protocol: HTTP
          hosts:
            - "*"
    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: userhub-app
    spec:
      hosts:
        - "*"
      gateways:
        - user-gateway
      http:
        - match:
            - uri:
                prefix: /
            - uri:
                exact: /api/v1/users
          route:
            - destination:
                host: users-app
                port:
                  number: 80
    

    在此更改之后,您应该能够使用您的 ingress-gateway loadBalancer IP 来输入它,例如使用 curl。

    curl -v ingress-gateway-ip/
    

    另外,我建议看看 istio bookinfo example 的工作原理,它可能有助于了解它的工作原理。

    【讨论】:

      猜你喜欢
      • 2015-07-31
      • 2018-04-07
      • 2018-12-10
      • 1970-01-01
      • 2021-12-27
      • 2021-09-11
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多