Q: Istio переписать - PullRequest
       3

Q: Istio переписать

0 голосов
/ 03 апреля 2020

У меня есть один входной шлюз: http://kubernetes.docker.internal

3 модуля интерфейса, заказов и документов. Я хочу перенаправить все запросы на http://kubernetes.docker.internal/, чтобы быть перенаправляется на веб-интерфейс и все запросы на http://kubernetes.docker.internal/api/public/documents/ в модуль документов на http://documents.adventureworks.svc.cluster.local/api/

например, http://kubernetes.docker.internal/api/public/documents/system/live -> http://documents.adventureworks.svc.cluster.local/api/

Переписывание, кажется, не выполняется на коляске

Определение виртуальной службы

kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: documents
  namespace: adventureworks
  selfLink: >-
    /apis/networking.istio.io/v1alpha3/namespaces/adventureworks/virtualservices/documents
  uid: 76dece7e-8c27-4b33-90c5-cf64111f4af9
  resourceVersion: '461248'
  generation: 2
  creationTimestamp: '2020-04-03T18:52:36Z'
spec:
  hosts:
    - kubernetes.docker.internal
  gateways:
    - public-gateway
  http:
    - match:
        - rewrite:
            uri: /api/
          uri:
            prefix: /api/public/documents/
      route:
        - destination:
            host: documents
            port:
              number: 80

1 Ответ

0 голосов
/ 06 апреля 2020

Если вы правильно настроили свое приложение, все должно работать нормально.

Я тестировал приложение istio bookinfo

В частности деталь с виртуальным сервисом .

Я изменил

- uri:
    prefix: /api/v1/products

до

- uri:
    prefix: /api
rewrite:
  uri: /api/v1/products 

и он работал просто отлично, поэтому я думаю, что это больше конфигурация вашего сервера, чем сама istio.


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

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: my-gateway
  namespace: some-config-namespace

Проверьте секцию spec.gateways

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bookinfo-Mongo
  namespace: bookinfo-namespace
spec:
  gateways:
  - some-config-namespace/my-gateway # can omit the namespace if gateway is in same
                                       namespace as virtual service.
...