Разрешение имени хоста для серверной службы в 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?
Любая помощь очень ценится, спасибо.