Istio VirtualService всегда 404s

У меня был один VirtualService, работающий через простой HTTP-шлюз, и все работает нормально:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: satc-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: report
spec:
  hosts:
  - report-create.default.svc.cluster.local
  gateways:
  - satc-gateway
  http:
  - match:
    - uri:
      prefix: /v1/report
    route:
    - destination:
        host: report-create
        port:
          number: 8080

С тех пор я добавил второй VirtualService для второй службы в кластере через тот же шлюз.

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: routing
spec:
  hosts:
  - routing-svc.default.svc.cluster.local
  gateways:
  - satc-gateway
  http:
  - match:
    - uri:
        prefix: /v1/routing
    route:
    - destination:
        host: routing-svc.default.svc.cluster.local
        port:
          protcol: http
          number: 8080

В то время как первый VirtualService, кажется, все еще обслуживает, второй последовательно 404s. Я добавил простую конечную точку "/v1/routing/test", чтобы вернуть сообщение Hello World, чтобы убедиться, что проблема не возникает из логики приложения.

Обе службы VirtualServices работают, как и ожидалось, хотя только запросы к report возвращают что-либо, кроме 404:

report    [satc-gateway]   [report-create.default.svc.cluster.local]   2h
routing   [satc-gateway]   [routing-svc.default.svc.cluster.local]     18m

Я попытался полностью удалить первое развертывание, чтобы убедиться, что теперь он поглощает весь входящий в кластер трафик и по-прежнему получает сообщения 404. Я также пробовал выполнять маршруты изнутри модуля с успешным ответом, обе службы используют порт контейнера 8080, который я также трижды проверил.

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


person GaryDevenay    schedule 16.09.2019    source источник


Ответы (1)


Я проанализировал оба ваших ямла и обнаружил несколько проблем по второму:

  • в строке prefix: есть 2 лишних пробела
  • опечатка в строке "протокол:" (пропущено o)
  • есть некоторые отличия в части destination:

Пожалуйста, внесите изменения и дайте мне знать, помогло ли это.

person Wytrzymały Wiktor    schedule 27.09.2019