Introduction
When deploying a Kubernetes Service of type LoadBalancer to an EKS cluster, you may notice that no Network Load Balancer (NLB) is provisioned, or that it’s missing expected attributes like a custom name or security group assignments. This usually indicates the AWS Load Balancer Controller is not installed, which is required for NLB and ALB support in EKS.
Prerequisites
- An EKS cluster running.
- kubectl and Helm access.
- AWS CLI credentials with permissions to create IAM roles and policies.
Instructions
-
Step 1 - Check if the aws-load-balancer-controller is installed:
-
kubectl get deployment -n kube-system aws-load-balancer-controller
- If it’s not found, EKS won't handle NLB provisioning beyond basic CLB behavior.
-
-
Step 2 - Install the AWS Load Balancer Controller:
-
The controller must be installed manually. It enables full NLB/ALB support, including setting names and security groups via annotations.
- AWS installation instructions: Route internet traffic with AWS Load Balancer Controller
-
Outcome
Once installed, your Service with type LoadBalancer and appropriate annotations will correctly register an NLB with the desired configuration.
Comments
Please sign in to leave a comment.