<p>I am trying to setup ALB load balancer instead of default ELB loadbalancer in Kubernetes AWS.The loadbalancer has to be connected to the istio ingressgateway.I looked for solutions and only found <a href="https://medium.com/@cy.chiang/how-to-integrate-aws-alb-with-istio-v1-0-b17e07cae156" rel="noreferrer">one</a>.
But the istio version mentioned is V1 and there has been so many changes in istio now.I tried to change service type to nodeport in the chart (according to the blog)but still the service comes as a Loadbalancer.</p>

<p>Can someone mention steps how to configure ALB for istio ingressgateway?</p>

<p>Thanks for reading</p>

<blockquote>
  <p>Step 1 : Change istioingresssgateway service type as nodeport</p>
  
  <p>Step 2 : Install ALB ingress controller </p>
  
  <p>Step 3 : Write ingress.yaml for istioingressgateway as follows:</p>
</blockquote>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: istio-system
  name: ingress
  labels:
    app: ingress
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/subnets: &lt;subnet1&gt;,&lt;subnet2&gt;
spec:
  rules:
    - http:
        paths:
          - path: /*
            backend:
              serviceName: istio-ingressgateway
              servicePort: 80
</code></pre>

<blockquote>
  <p>alb.ingress.kubernetes.io/subnets annotation can be avoided if you labelled subnet of vpc with :</p>
  
  <p>kubernetes.io/cluster/: owned</p>
  
  <p>kubernetes.io/role/internal-elb: 1 (for internal ELB)</p>
  
  <p>kubernetes.io/role/elb: 1 (for external ELB)</p>
</blockquote>

<p>or else you can provide two subnet values and each subnet should be in different availability zone in the above yaml</p>

<blockquote>
  <p>It worked in Istio 1.6</p>
</blockquote>
