istio:VirtualService重写为根URL

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

我有一个Istio 1.4.6 VirtualService,具有一个匹配项和一个URL重写,定义如下:

    match:
    - authority:
        prefix: example.com
      uri:
        prefix: /foo/bar
    rewrite:
      uri: /
    route:
    - destination:
        host: some-service
        port:
          number: 80

我想像下面这样重写:

指向/foo/bar的交通或其任何子路径应重写为/加上some-service上的任何子路径。

i.e.
example.com/foo/bar -> some-service
example.com/foo/bar/subpath -> some-service/subpath
example.com/foo/bar/subpath/anothersubpath -> some-service/subpath/anothersubpath

但是,当我对进入some-service的流量进行系统分析时,我发现Istio已将路径重写为:

GET //subpath/anothersubpath HTTP/1.1

注意GET请求中的两个斜杠。在VirtualService spec rewrite.uri字段中,我似乎无法将该字段保留为空白或在其中添加空字符串。这样做会导致资源无法验证。

即我不能这样做:

    rewrite:
      uri: ""

而且不能这样做

    rewrite:
      uri:

我如何定义VirtualService重写以将流量发送到目标服务的根目录?任何帮助深表感谢。

kubernetes routing istio envoyproxy
1个回答
0
投票

这里有一个github issue

最简单的解决方法是在不运行uri核心应用程序的情况下在.net中添加空格。

    rewrite:
      uri: " "

可以找到其他解决方法here

希望有帮助。

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