EKS : could not find any suitable subnets for creating the ELB
For people that may reach this question, I have faced the same error, but the problem was really simple.
The tag with key kubernetes.io/cluster/<cluster-name> had the wrong cluster name as the automation that deployed it was wrong.
In EKS 1.16, I need internet-facing NLB.
The root cause in EKS is that you haven't selected a public subnet while creating the cluster.
After creating the cluster EKS will not allow to update subnets as of now here
To resolve the issue, I have performed the below steps
- created a
public subnet
in the same vpc of EKS - Attached
IGW
in route tables in new created public subnets - Added below
tags
in public subnets kubernetes.io/cluster/<EKSClusterName>
:shared
Note: In a 4th step, Replace your EKS cluster name in placeholder EKSClusterName
By default AWS EKS only attaches load balancers to public subnets. In order to launch it in a private subnet you need to not only label your subnets (which it looks like you did) but also annotate your load balancer-
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
You can find more information here.