Итак, я успешно развернул istio, по крайней мере, мне так кажется, что все работает нормально. Я развернул свой API в Istio и могу связаться с ним через свой браузер. Я даже могу протестировать мой API с помощью почтальона, но когда я пытаюсь добраться до моего API через curl, он говорит The remote name could not be resolved: 'api.localhost'
. Это был первый красный флаг, но я проигнорировал его. Сейчас я пытаюсь получить доступ к своему API из моего веб-приложения, но Chrome отвечает net:ERR_FAILED
.
Похоже, что мои сервисы доступны только для хоста, который я, и ничего больше. Я не могу найти решение для этого на inte rnet, поэтому я надеюсь, что кто-то имеет опыт и знает, как исправить.
Спасибо!
РЕДАКТИРОВАТЬ: Дополнительная информация
У меня вся локальная инфраструктура, Docker для рабочего стола с Kubernetes . Используемая версия Istio: 1.5.0 .
Шлюз :
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: api-gateway
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http-api
protocol: HTTP
hosts:
- "api.localhost"
Виртуальный сервис :
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: pb-api
spec:
gateways:
- api-gateway
hosts:
- "*"
http:
- match:
- uri:
prefix: /
rewrite:
uri: /
route:
- destination:
host: pb-api
port:
number: 3001
Когда я пытаюсь сделать curl http://api.localhost/user/me
, я ожидаю 401
, но вместо этого я получаю The remote name could not be resolved: 'api.localhost'
, как указано выше. Эта ошибка точно такая же, как при выключении Docker для рабочего стола и повторной попытке. Через почтальон и браузер он работает нормально, но curl и мое реагирующее веб-приложение не могут до него добраться.