Связанная проблема
Посланник 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