Istio VirtualService始终为404s

问题描述 投票:0回答:1

我已经通过一个简单的http网关运行了一个VirtualService,并且一切正常:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: satc-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: report
spec:
  hosts:
  - report-create.default.svc.cluster.local
  gateways:
  - satc-gateway
  http:
  - match:
    - uri:
      prefix: /v1/report
    route:
    - destination:
        host: report-create
        port:
          number: 8080

此后,我已经通过同一网关为集群中的第二个服务添加了第二个VirtualService

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: routing
spec:
  hosts:
  - routing-svc.default.svc.cluster.local
  gateways:
  - satc-gateway
  http:
  - match:
    - uri:
        prefix: /v1/routing
    route:
    - destination:
        host: routing-svc.default.svc.cluster.local
        port:
          protcol: http
          number: 8080

虽然第一个VirtualService仍然可以提供服务,但第二个始终提供404。我添加了一个简单的端点"/v1/routing/test"以返回Hello World消息,以确保该问题不会从应用程序逻辑中产生。

两个VirtualServices似乎都按预期方式运行,尽管只有对report的请求返回的不是404:

report    [satc-gateway]   [report-create.default.svc.cluster.local]   2h
routing   [satc-gateway]   [routing-svc.default.svc.cluster.local]     18m

我已经尝试一起删除第一个部署,以确保它现在可以将进入集群的所有流量都悬浮起来,并且仍然获得404。我也尝试过从Pod内部执行路由并获得成功的响应,这两个服务都使用了容器端口8080,我也对其进行了三重检查。

我似乎为此碰壁了,不确定要正确调试下一步的最佳步骤是什么。

kubernetes kubernetes-ingress istio
1个回答
0
投票

我已经分析了您的两个Yaml,并且发现与第二个Yaml无关的小问题:

  • prefix:行中有2个多余的空格
  • “协议:”行中有错字(缺少o
  • destination:部分有一些差异

请进行调整,让我知道是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.