<p>Update: This problem is only on docker-for-mac</p>

<p>I have been chasing this for some time now - how do you open an external port into Istio.</p>

<p>Note all this works on <code>port 80</code>, why not on <code>port 8080</code>?</p>

<p>Using helm, I have changed value in <code>values.yaml</code> gateways:</p>

<pre><code>- port: 80
  targetPort: 80
  name: http2
  # nodePort: 31380
- port: 8080
  targetPort: 8080
  name: http2-testport
  # nodePort: 31480  
</code></pre>

<p>I have created a Istion Gateway:</p>

<pre><code># Istio - Gateway
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: helloworld-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http-80
      protocol: HTTP
    hosts:
    - "my-service.default.svc.cluster.local"

  - port:
      number: 8080
      name: http-8080
      protocol: HTTP
    hosts:
    - "my-service.default.svc.cluster.local"
</code></pre>

<p>Port 8080 is open: <code>kubectl get svc -n istio-system</code></p>

<pre><code>istio-ingressgateway       LoadBalancer   10.106.146.89    localhost     80:31342/TCP,443:31390/TCP,31400:31400/TCP,15011:31735/TCP,8060:32568/TCP,8080:32164/TCP,853:30443/TCP,15030:
</code></pre>

Chris G.
<p>You have to define a <code>VirtualService</code> to specify where (to which microservice) the ingress traffic must be directed, see <a href="https://istio.io/docs/tasks/traffic-management/ingress/#configuring-ingress-using-an-istio-gateway" rel="nofollow noreferrer">https://istio.io/docs/tasks/traffic-management/ingress/#configuring-ingress-using-an-istio-gateway</a>.</p>

<p>Also try to send the Host header with your request, e.g. with <code>curl</code> -H Host:my-service.default.svc.cluster.local.</p>

<p>See <a href="https://github.com/istio/istio.github.io/pull/2181" rel="nofollow noreferrer">https://github.com/istio/istio.github.io/pull/2181</a>.</p>
