在Istio VS中基于URI前缀将请求路由到服务

时间:2020-07-07 10:54:30

标签: kubernetes kubernetes-ingress istio contextpath

这是我要实现的目标: 根据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

谢谢

1 个答案:

答案 0 :(得分:1)

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

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/