После развертывания Istio 1.1.2 в OpenShift существует маршрут прохода через вход с соответствующей службой и модулем.
Я успешно использовал этот входной шлюз для доступа к приложению, настраивая шлюз и VirtualService, используя * в качестве хостов.
Однако я хотел бы настроить домен, например insuranceinc.es, для доступа к приложению. Согласно документации у меня есть этот конфиг Istio:
Gateway:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: insuranceinc-gateway
namespace: istio-insuranceinc
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "insuranceinc.es"
VirtualService
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: insuranceinc
namespace: istio-insuranceinc
spec:
hosts:
- insuranceinc.es
gateways:
- insuranceinc-gateway
http:
- route:
- destination:
host: insuranceinc-web
port:
number: 8080
Если я сделаю этот вызов завитка ...
curl http://istio-ingressgateway-istio-system.apps.mycluster.com/login
... Я вижу ошибку 404 в модуле входного шлюза:
[2019-04-12T15:27:51.765Z] "GET /login HTTP/1.1" 404 NR "-" 0 0 1 - "xxx" "curl/7.54.0" "xxx" "istio-ingressgateway-istio-system.apps.mycluster.com" "-" - - xxx -
Это имеет смысл, поскольку оно не приходит от хоста insuranceinc.es. Поэтому я изменяю curl для отправки заголовка Host: insuranceinc.es
:
curl -H "Host: insuranceinc.es" http://istio-ingressgateway-istio-system.apps.mycluster.com/login
Теперь я получаю ошибку 503, и в модуле istio-ingressgateway нет журналов.
Приложение недоступно
В данный момент приложение не обслуживает запросы в этой конечной точке. Возможно, он не был запущен или все еще запускается.
Это означает, что запрос не был обработан этим istio-ingressgateway route-> service-> poc.
Так как это Openshift Route
, он должен нуждаться в заголовке Host, содержащем маршрутный хост istio-ingressgateway-istio-system.apps.mycluster.com
. Фактически, если я отправляю curl -H "Host: istio-ingressgateway-istio-system.apps.mycluster.com" http://istio-ingressgateway-istio-system.apps.mycluster.com/login
, он обрабатывается входным шлюзом istio, возвращающим 404.
Итак, как я могу отправить свой заголовок Host insuranceinc.es и также добраться до входного шлюза istio (который на самом деле является маршрутом OpenShift)?