<p>I have deployed an application on AWS using EKS. I roughly need 20-25 loadbalancers in my application.</p>
<p>Now, AWS offers 20 Classic load balancers and 50 Application load balancers in my account.</p>
<p>I use helm chart for creating these load balancers using service =&gt; type =&gt; LoadBalancer, and these loadbalancers are considered Classic load balancers.</p>
<p>Is there a way to use ALB in place of CLB (either using AWS settings OR passing an option in the helm chart) ?</p>
<p>Thanks in advance !</p>

Keval Bhogayata
<p>According to <a href="https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html" rel="nofollow noreferrer">AWS ELB documentation</a>, You can use following ingress annotation for ingress object:</p>
<pre><code>annotations:
    kubernetes.io/ingress.class: alb
</code></pre>
<p>From AWS docs:</p>
<blockquote>
<p>The AWS Load Balancer Controller creates ALBs and the necessary
supporting AWS resources whenever a Kubernetes Ingress resource is
created on the cluster with the kubernetes.io/ingress.class: alb
annotation. The Ingress resource configures the ALB to route HTTP or
HTTPS traffic to different pods within the cluster. To ensure that
your Ingress objects use the AWS Load Balancer Controller, add the
following annotation to your Kubernetes Ingress specification. For
more information, see <a href="https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.1/guide/ingress/spec/" rel="nofollow noreferrer">Ingress specification on GitHub</a>.</p>
</blockquote>
<p>What's good in this solution is that an ALB can also be shared across multiple Ingresses, so you wouldn't need to use so many of separete LBs.</p>
<p>EDIT:
As mentioned by Bastian, You need to have <a href="https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html" rel="nofollow noreferrer">AWS Load Balancer Controller</a> deployed to your cluster in order for it to work.</p>
