Как направить весь трафик на сервис в Istio?

У меня есть yaml-файл виртуальной службы со строками ниже.

      apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: nodeserver
spec:
  hosts:
  - "*"
  gateways:
  - node-gateway
  http:
  - match:
    - uri:
        exact: /
    - uri:
        exact: /sample1
    - uri:
        exact: /sample2
    route:
    - destination:
        host: node-service
        port:
          number: 8080

Здесь вместо/sample1и/sample2как два совпадения URL-адресов, могу ли я назначить что-то вроде*по умолчанию маршрутизировать весь трафик в node-service? Кроме того, если на веб-странице есть гиперссылки, Istio перенаправит их по умолчанию или для этого потребуется добавить какую-либо пользовательскую конфигурацию?

2 ответа

Вы можете использоватьregexвместоexactв HTTPMatchRequest.
Таким образом, вы можете перехватить все с помощью регулярного выражения в стиле ECMAscript.

      apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: nodeserver
spec:
  hosts:
  - "*"
  gateways:
  - node-gateway
  http:
  - match:
    - uri:
        regex: '.+'
    route:
    - destination:
        host: node-service
        port:
          number: 8080

Используйте префикс: ''

Это сработало для меня:

        http:
  - match:
      - uri:
          prefix: ''
Другие вопросы по тегам