Я следовал этому руководству для установки istio, а также развернул пример приложения bookinfo
.
У них есть следующий ingress-gateway.yml
файл
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
spec:
hosts:
- "*"
gateways:
- bookinfo-gateway
http:
- match:
- uri:
exact: /productpage
- uri:
exact: /login
- uri:
exact: /logout
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
КогдаЯ делаю kubectl apply -f ingress-gateway.yml
, он отлично работает, и я могу получить доступ к приложению на http://<ip>/productpage
Однако, если я хочу получить к нему доступ в определенном домене, например, bookinfo.com
Я изменилв поле hosts
в разделах gateway
и VirtualService
и добавили запись в мой файл /etc/hosts
.
Итак, оно изменилось на следующее
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "bookinfo.com"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
spec:
hosts:
- "bookinfo.com"
gateways:
- bookinfo-gateway
http:
- match:
- uri:
exact: /productpage
- uri:
exact: /login
- uri:
exact: /logout
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
КогдаЯ пытаюсь получить доступ к http://bookinfo.com/productpage
, это дает 404 не найдено.Чего мне не хватает?
PS: я использую istio1.0.5