在 Istio VS 中根据 URI 前缀将请求路由到服务

Routing requests to services based on URI prefix in Istio VS

这就是我想要实现的: 根据 URI 前缀

将流量路由到服务

我面临的问题: 无法将前缀与上下文路径分开

解释:

我想根据前缀将流量路由到服务。 比如说,/dev/service/context/path//test/service/context/path/。 但是如果不更改应用程序本身的上下文路径,我将无法这样做。

有没有办法将 URI 的前缀部分与应用程序的上下文路径分开?

这是我的 VS 的样子:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: servicea
  namespace: dev
spec:
  hosts:
  - "*"
  gateways:
  - dev-gateway
  http:
  - match:
    - uri:
        prefix: /dev
    route:
    - destination:
        port:
          number: 8080
        host: servicea

谢谢

不确定我是否正确理解你的问题。我想你可以像这样添加一个重写规则:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: servicea
  namespace: dev
spec:
  hosts:
  - "*"
  gateways:
  - dev-gateway
  http:
  - match:
    - uri:
        prefix: /dev
    rewrite:
       uri: /
    route:
    - destination:
        port:
          number: 8080
        host: servicea

由此,您 /dev/service/context/path/ 的流量变为 /service/context/path/