kubernetes K8S:使用Istio返回路由404

6ie5vjzr  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(1)|浏览(316)

我刚进入K8的世界。
在我的开发环境中,我使用ngnix作为不同微服务的代理(带有CORS配置和类似的头转发)(都是用spring Boot 创建的)。
我正在尝试运行一个简单的微服务(目前),并使用Istio路由到它。
如果我导航到IstioIP/auth/api/v1,它将返回404
这是我的yaml文件

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: gateway
spec:
  selector:
    istio: ingressgateway # use Istio default gateway implementation
  servers:
    - port:
        name: http
        number: 80
        protocol: HTTP
      hosts:
        - '*'
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: virtual-service
spec:
  hosts:
  - "*"
  gateways:
  - gateway
  http:
  - match:
    - uri:
        prefix: /auth
    route:
    - destination:
        host: auth-srv
        port:
          number: 8082
---
apiVersion: v1
kind: Service
metadata:
  name: auth-srv
  labels:
    app: auth-srv
spec:
  ports:
    - name: http
      port: 8082
  selector:
    app: auth-srv
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: auth-srv
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: auth-srv
        version: v1
    spec:
      containers:
        - name: auth-srv
          image: gcr.io/{{MY_PROJECT_ID}}/auth-srv:1.5
          imagePullPolicy: IfNotPresent
          env:
            - name: JAVA_OPTS
              value: '-DZIPKIN_SERVER=http://zipkin:9411'
          ports:
            - containerPort: 8082
          livenessProbe:
            httpGet:
              path: /api/v1
              port: 8082
            initialDelaySeconds: 60
            periodSeconds: 5
8cdiaqws

8cdiaqws1#

看起来istio不知道任何关于url的信息。因此,您得到了一个404错误响应。如果您仔细查看虚拟服务器中的配置,您已经将istio配置为匹配路径/auth
因此,如果您尝试请求ISTIOIP/auth,您将到达您的微服务应用程序。下面的图像描述了通信流以及为什么您会得到404响应。

相关问题