amazon-web-servicesamazon-eksamazon-elb

Does EKS Auto Mode use AWS Load Balancer Controller?


AWS EKS Auto Mode was launched at re:Invent 2024.

Among the things it automates is this:

Load balancing: EKS Auto Mode streamlines load balancing by integrating with Amazon’s Elastic Load Balancing service, automating the provisioning and configuration of load balancers for Kubernetes Services and Ingress resources. It supports advanced features for both Application and Network Load Balancers, manages their lifecycle, and scales them to match cluster demands. This integration provides a production-ready load balancing solution adhering to AWS best practices, allowing you to focus on applications rather than infrastructure management. [ref]

I see no mention of AWS Load Balancer Controller, so was curious. Is AWS EKS Auto Mode automatically installed and using AWS Load Balancer Controller, or is it using some other technology to setup the ELBs?

EDIT

I agree with the answers given here that it seems to be separate from AWS LBC

When an ALB is created with LBC, it gets these tags

Key Value
elbv2.k8s.aws/cluster eks-cluster-xyz-stage
ingress.k8s.aws/resource LoadBalancer
ingress.k8s.aws/stack default/xyz-ingress-alb-stage

When an ALB is created with AWS EKS Auto Mode, it gets these tags

Key Value
eks:eks-cluster-name eks-auto-mode-cluster
ingress.eks.amazonaws.com/resource LoadBalancer
ingress.eks.amazonaws.com/stack se-namespace/hello-world-ingress

Solution

  • The documentation explicitly says on how EKS Auto mode creates the Load balancer. But I can feel your confusion. The best explicit meaning is given when we try to delete or cleanup the Ingress resources when EKS auto is enabled.

    As mentioned in docs: https://docs.aws.amazon.com/eks/latest/userguide/auto-configure-alb.html

    EKS Auto Mode creates and configures Application Load Balancers (ALBs). For example, EKS Auto Mode creates a load balancer when you create an Ingress Kubernetes objects and configures it to route traffic to your cluster workload.

    These are the steps in simpler terms

    Note: EKS Auto should be enabled on the cluster

    kubectl delete ingress <ingress-name> 
    

    EKS Auto Mode will automatically delete the associated load balancer in your AWS account.