Istio - 向 route/destination 添加前缀的方法?

Istio - way to add prefix to route/destination?

目前部署了 Istio 来处理我的应用程序的入口。 运行 遇到一个问题,其中一个应用程序需要通过某个 URL 访问,例如“http://gateway/webapp1”,我需要它在内部路由到: 服务器名称 1:8080/some/odd/name/path

我目前的匹配语句是:

  - match:
    - uri:
      prefix: /webapp1
  route:
    - destination:
        host: server-name1
        port:
          number: 8080

我无法弄清楚如何扩展目标路由以告诉它到达服务器名称 1:8080 之外的另一个端点。有没有一种简单的方法可以为基础route/destination添加前缀?谢谢。

您可以在进一步发送流量之前对虚拟服务使用 HTTP 重写

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ratings-route
spec:
  hosts:
  - ratings.prod.svc.cluster.local
  http:
  - match:
    - uri:
        prefix: /webapp1
    rewrite:
      uri: /gateway/webapp1
    route:
    - destination:
        host: server-name1
        port:
          number: 8080

阅读官方文档:https://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPRewrite