If you're managing workloads on Amazon EKS, you might encounter a common issue known as IP address exhaustion. This problem arises when your cluster expands, and new pods are unable to acquire an IP address because the available pool is depleted. The Amazon VPC CNI plugin is in charge of IP allocation for pods, and by default, your cluster is limited by the size of the subnets created during VPC setup. If these subnets are small or already heavily utilized, it won't take long before you reach your IP limit. To tackle this, you can associate new subnets or secondary CIDR blocks with your VPC and ensure the CNI plugin recognizes these additions by tagging them correctly. After making these changes, you should verify that new pods can successfully get IPs from the extended pool.
4 Answers
Have you considered using IPv6? It can offer a much larger address space and could resolve some of your issues. Just curious, does anyone actually run Kubernetes with IPv6 exclusively for production pods?
I faced a similar issue about two years ago with a personal test cluster. My solution involved tearing everything down to the subnet level and then rebuilding it all. Thankfully, I was using Terraform for management, which made the process smoother.
It's worth noting that there are other IP consumption factors in AWS. For instance, each worker node has a reserve of 'warm' IPs that are pre-allocated for future pods. This can take up a hefty number of IPs, especially in clusters with numerous nodes.
One effective way to manage IP exhaustion is to use prefix delegation mode. Instead of assigning IPs individually, AWS allocates /28 prefixes to your ENIs, which gives you 16 IPs each. This significantly enhances pod density and reduces waste, making it a smart option for larger clusters.

Related Questions
How To Get Your Domain Unblocked From Facebook
How To Find A String In a Directory of Files Using Linux