I normally use GKE but wanted to test EKS and I am struggling to deploy nginx as ingress-controller. In GKE I get an external IP, put it in the values config (controller.service.loadBalancerIP) sent it and ready to go.
In AWS an NLB is been created but the Schema is interna and therefore I cannot get external traffic in. Can you direct me what I need to set in the default
https://kubernetes.github.io/ingress-nginx (4.7.1) Helm chart to change it to an internet-facing NLB? I am deploying the chart via ArgoCD.
I also tried to annotate already the subnets with kubernetes.io/role/elb and kubernetes.io/role/internal-elb tags but it changed nothing…
EKS version is 1.27
2
Answers
In AWS EKS, you usually want to use the AWS Load Balancer Controller, which is both a load balancer and an ingress controller. This will deploy a Network Load Balancer for each Service you create, and an Application Load Balancer for each Ingress you create in the cluster.
Refer to the link above, and to:
https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html
You need to set these annotations to make your NLB internet-facing
Regarding the
controller.service.loadBalancerIP
annotation, it didn’t work for me, the nlb keep getting random IPs.