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

<pre><code>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
</code></pre>

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

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

<p><strong>Update</strong>  </p>

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

<ol>
<li>Is it possible to use istio with an Ingress ressource?</li>
<li>If not, how to secure the data between an istio envoy proxy and the nginx ingress controller?</li>
</ol>

ItFreak
<p>For ingress objects <strong>ExternalDNS</strong> will create a DNS record based on the host specified for the ingress object. </p>

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