Виртуальный сервис Istio не применяет тайм-аут - PullRequest
0 голосов
/ 26 февраля 2019

Я бы хотел использовать механизм ввода ошибок 1001 * компании Istio.

У меня была задача добавить 5-секундный тайм-аут для службы.Поэтому, чтобы добиться этого, я создал свой собственный виртуальный сервис, который выглядит следующим образом:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: hello
  namespace: default
spec:
  hosts:
  - hello-service.default.svc.cluster.local
  http:
  - fault:
      delay:
        percent: 100   #Applies on all request
        fixedDelay: 5s #Timeout of 5 sec
    route:
    - destination:
        host: hello-service.default.svc.cluster.local

Как вы можете видеть, я только перенаправил службу hello на себя и применил 5-секундный тайм-аут. К сожалению, тайм-аут не работает вообще ...


Это пример из документации 1016 *:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ratings
spec:
  hosts:
  - ratings
  http:
  - fault:
      delay:
        percent: 100
        fixedDelay: 2s
    route:
    - destination:
        host: ratings
        subset: v1

Что я делаю не так?
Спасибо за вашу помощь


Обновление 1 - Добавление целевой службы

apiVersion: v1
kind: Service
metadata:
  name: hello-service
  namespace: default
spec:
  selector:
    app: hello
  ports:
  - port: 80
    targetPort: 9080

Обновление 2 - Добавлениевывод прокси-конфига

$istioctl proxy-config route hello-75c874b67f-6l4p9
NOTE: This output only contains routes loaded via RDS.
NAME      VIRTUAL HOSTS
80        6
3000      4
8060      1
8080      2
8088      1
9090      1
9091      2
9093      5
9411      1
15004     2
15010     1
15030     1
15031     1
20001     1
          1

1 Ответ

0 голосов
/ 01 марта 2019

Добавление этого ответа, чтобы дать представление о состоянии проблемы.

С помощью @ Сергей Бишыр Теперь я знаю, что virtualService предоставляется в моемвопрос работает.

Я протестировал это с двумя простыми приложениями, скручивающимися от первого ко второму.В этом случае тайм-аут применяется!

К сожалению, в исходном приложении, где я использовал виртуальный сервис, оно все еще не работает.

тестовые приложения и оригинальное оба являются веб-серверами, поэтому я не уверен, почему в одном случае он работает, а не вВторой ... Тайна еще не разгадана.

...