Three fixes for IP pressure, solving different constraints.
Per-node Pod limits and subnet-wide address exhaustion are different problems with different remedies.
Prefix delegation
Hand out /28 blocks
The CNI assigns whole 16-address prefixes to an ENI instead of single IPs, raising Pods per node a lot (up to the recommended cap). Fixes the per-node limit.
Custom networking
A separate CIDR for Pods
Pods use ENIs in subnets from a secondary VPC CIDR (for example 100.64.0.0/16) with an ENIConfig. Fixes VPC-wide exhaustion.
IPv6 cluster
Effectively unlimited Pod IPs
An IPv6 cluster gives Pods IPv6 addresses. Needs IPv6 support in your VPC and dependencies. A bigger design change.
Pods per m5.large (illustrative)
default
29
29
prefix delegation
up to about 110
up to about 110
# enable on the VPC CNI add-on ENABLE_PREFIX_DELEGATION="true" WARM_PREFIX_TARGET="1"
Plan subnets first
Use generous subnets (/19 or larger for nodes and Pods in busy clusters) and reserve ranges. Prefix delegation needs contiguous /28 blocks, so fragmented subnets can still fail.