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.