Разрешение имени хоста для серверной службы в Anthos Service Mesh с Istio ingress-gateway

У меня есть приложение Node/React, которое я запускаю в Anthos Service Mesh/GKE с входным шлюзом Istio. Вот мой шлюз yaml

      apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: client-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
    - port:
        number: 80
        name: http
        protocol: HTTP
      hosts:
        - '*'
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: client-ingress
spec:
  hosts:
    - '*'
  gateways:
    - client-gateway
  http:
    - match:
        - uri:
            prefix: /posts/create
      route:
        - destination:
            host: posts-srv # 2
            port:
              number: 4000
    - match:
        - uri:
            prefix: /posts
      route:
        - destination:
            host: query-srv # 2
            port:
              number: 4002
    - match:
        - uri:
            prefix: /
      route:
        - destination:
            host: client-srv # 2
            port:
              number: 80

Мое приложение React делает 3 вызова API, которые

      posts.com/posts, 
posts.com/posts/create, 
posts.com/posts/comments/*

Как и сейчас, я получаю ошибки тайм-аута всякий раз, когда я делаю вызов API. Если я заменю posts.com/ на IP-адрес балансировщика нагрузки в вызовах API из приложения React, приложение будет работать, как это

      34.258.xxx.xxx/posts,
34.258.xxx.xxx/posts/create
34.258.xxx.xxx/posts/comments/*

Я попытался изменить поле hosts в yaml на posts.com и добавить posts.com с IP-адресом балансировщика нагрузки в файл hosts для разрешения, но это тоже не работает.

Как я могу сделать так, чтобы просто зайдя на posts.com в моем браузере, я мог использовать приложение без необходимости жестко кодировать IP-адреса в вызовах API в приложении React?

Любая помощь очень ценится, спасибо.

0 ответов

Другие вопросы по тегам