istio: VirtualService переписать на root URL - PullRequest
0 голосов
/ 12 марта 2020

У меня есть 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

Я бы хотел переписать следующим образом:

Traffi c направлено в /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

Однако, когда я sysdig траффи c, поступающий в some-service, я обратите внимание, что Istio переписал путь к:

GET //subpath/anothersubpath HTTP/1.1

Обратите внимание на две косые черты в запросе GET. В поле VirtualService spe c rewrite.uri я не могу оставить это поле пустым или добавить туда пустую строку. Это приводит к тому, что ресурс не проверяется.

Т.е. я НЕ могу это сделать:

    rewrite:
      uri: ""

И НЕ МОГУТ это сделать

    rewrite:
      uri:

Как определить Перезаписать VirtualService для отправки трафика c на root службы назначения? Буду признателен за любую оказанную помощь.

1 Ответ

1 голос
/ 12 марта 2020

Существует github проблема по этому поводу.

Самое простое решение - добавить пробел в uri, если вы не используете .net основное приложение.

    rewrite:
      uri: " "

Другие решения можно найти здесь ,

Надеюсь, это поможет.

...