0
votes

I deployed the book application from Istio in a AKS cluster that has a Loadbalancer and a custom domain. Here is the gateway.yaml:

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:
    - "x.myaks.domain"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bookinfo
spec:
  hosts:
  - "x.myaks.domain"
  gateways:
  - bookinfo-gateway
  http:
  - match:
    - uri:
        exact: /productpage
    - uri:
        prefix: /static
    - uri:
        exact: /login
    - uri:
        exact: /logout
    - uri:
        prefix: /api/v1/products
    route:
    - destination:
        host: productpage
        port:
          number: 9080

The problem is, when I navigate in my browser to x.myaks.domain/productpage, I get an DNS unresolved error. Does anyone know how to expose services with Istio in AKS clusters under a domain?

Doing curl -H "Host: x.myaks.domain" loadbalancerip/productpage works perfectly

Update

I just have the info that an automatic DNS entry in Azure is created when the Ingress ressource is defined.

  1. Is it possible to use istio with an Ingress ressource?
  2. If not, how to secure the data between an istio envoy proxy and the nginx ingress controller?
1
can you also share your productpage service yaml in order to have a complete picture of your setup. - A_Suh
sure, but that is just the bookinfo example of istio - ItFreak
ok, no worries, I'll take it from here raw.githubusercontent.com/istio/istio/release-1.2/samples/… - A_Suh
Thanks. I will concretise my question since I have a new info - ItFreak
Yes, you can use istio together with ingress. Here is a relevant discussion - discuss.istio.io/t/istio-without-gateway-with-nginx-ingress/593 - A_Suh

1 Answers

1
votes

For ingress objects ExternalDNS will create a DNS record based on the host specified for the ingress object.

For services ExternalDNS will look for the annotation external-dns.alpha.kubernetes.io/hostname on the service and use the corresponding value.