Почему я бью нормальный контейнер с разными папками префиксов - PullRequest
0 голосов
/ 30 ноября 2018

Знаете ли вы, почему следующие две конфигурации префикса istio yaml маршрутизируются в один и тот же контейнер?

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: my-one-virtualservice
spec:
  hosts:
  - "*"
  gateways: 
  - my-gateway
  http:
  - match:
    - uri:
        prefix: /one
    route:
    - destination:
        host: my-one-service

Следующие элементы попадают в один и тот же контейнер / службу (только что изменили префикс и службу хоста):

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: my-two-virtualservice
spec:
  hosts:
  - "*"
  gateways: 
  - my-gateway
  http:
  - match:
    - uri:
        prefix: /one/two
    route:
    - destination:
        host: my-two-service

1 Ответ

0 голосов
/ 04 декабря 2018

Проблема в том, что у вас есть 2 виртуальные службы для одного хоста.В этом случае правила будут объединены в неопределенном порядке, как описано здесь .

В вашем случае, поскольку второй префикс является более конкретным подмножеством первого, вам необходимо убедиться, чтовторое правило имеет более высокий приоритет (т. е. упорядочено первым).

Это можно исправить, поместив оба правила в одну виртуальную службу, например:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: my-one-virtualservice
spec:
  hosts:
  - "*"
  gateways: 
  - my-gateway
  http:
  - match:
    - uri:
        prefix: /one/two
    route:
    - destination:
        host: my-two-service
  - match:
    - uri:
        prefix: /one
    route:
    - destination:
        host: my-one-service

Дополнительная информация о правилеПорядок можно найти здесь .

...