Istio дает ответ 404 NR, когда он должен давать 200 - PullRequest
0 голосов
/ 22 февраля 2019

Связанная проблема

Посланник Istio отбрасывает запросы с заголовком хоста

Вышеуказанная проблема является единственной, даже удаленно похожей на мою проблему.Однако, Host в моем заголовке - service-b.myns.svc.cluster.local, и я не понимаю, почему это должно быть проблемой.

Ситуация

У меня есть пространство имен со многими Deployment s.и Service с.И для каждого Service я также определил VirtualService.Пример:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  labels:
    app: service-b
  name: service-b
  namespace: myns
spec:
  gateways:
  - myns.myns.svc.cluster.local
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /.well-known
    - uri:
        prefix: /robots.txt
    - uri:
        prefix: /apple-app-site-association
    - uri:
        prefix: /favicon.ico
    - uri:
        prefix: /content/
    route:
    - destination:
        host: service-b.myns.svc.cluster.local
        port:
          number: 80

Проблема

У меня есть другая служба, назовите ее service-a, которая должна быть в состоянии получить /.well-known, robots.txt, /content/header, /content/footerи т. д. Я предполагаю, что, поскольку я определил маршрут, по которому эти пути ведут прямо к service-b, они должны быть извлечены к service-a.Однако в журналах написано следующее:

[2019-02-22T01:07:54.557Z] "GET /content/headerHTTP/1.1" 404 NR 0 0 0 - "-" "curl/7.52.1" "789b3b81-9f61-43c3-b01a-b66d35c1d635" "service-b" "-" - - 10.x.x.x:80 10.y.y.y:47526

Вопрос № 1

Согласно Документам посланника , NR означает отсутствие маршрута.Разве я не определил маршрут в своем VirtualService?

Вопросе № 2

Я могу получить ответ 200 для каждого из этих путей, если я просто подключу их к панели URLв моем браузере (т.е. <istio-ingressgateway-ip-address>/robots.txt).Почему?

Некоторый прогресс

Я сузил проблему до istio proxy на модуле для service-a.Я сделал это, удалив изо-прокси коляски по одному.В двух случаях я получаю 200 с service-a:

[SVCA][ISTIOPROXY] ---> X [ISTIOPROXY][SVCB]  # Does not work
[SVCA][ISTIOPROXY] ---> X             [SVCB]  # Does not work
[SVCA]             ---> ✓             [SVCB]  # Does work
[SVCA]             ---> ✓ [ISTIOPROXY][SVCB]  # Does work
...