EKS max pods per node calculator
Pick an EC2 instance type and VPC CNI mode to get the maximum pods a node can run, with the formula shown. Prefix delegation and the managed node group cap are included.
By Muhammad Soliman, Founder at SeaGit
What this calculates
On Amazon EKS, every pod gets its own IP address from the node's subnet through the Amazon VPC CNI. An EC2 instance can only hold so many network interfaces, and each interface holds only so many IPv4 addresses. The number of IP addresses is therefore the real ceiling on pods per node, long before CPU or memory run out. This calculator applies the AWS formula to the instance type you pick, so you can plan node counts and kubelet settings from one number.
The result is the value the EKS AMI uses for kubelet --max-pods when it is not overridden. Only the instance's network limits are used, so the answer does not change with CPU or memory.
The formula
With the default secondary IP mode, AWS documents the maximum pods as:
max pods = (ENIs × (IPv4 per ENI − 1)) + 2The −1 leaves out the primary private IP of each interface. The node uses that address for itself. The +2 is for the Amazon VPC CNI (aws-node) and kube-proxy pods, which run on every node with host networking and do not take a pod IP.
With prefix delegation (ENABLE_PREFIX_DELEGATION=true), each secondary slot holds a /28 prefix of 16 addresses. The calculator uses the same structure with that slot size:
max pods = (ENIs × ((IPv4 per ENI − 1) × 16)) + 2AWS documents the /28 prefix size and the mode, but the per-slot expansion above is our derivation. Check it against AWS's max-pods-calculator script for your VPC CNI version before you size a production node group on it.
Worked example: m5.large and m5.xlarge
An m5.large has 3 network interfaces with 10 IPv4 addresses each. In secondary IP mode:
3 × (10 − 1) + 2 = 29 podsAn m5.xlarge has 4 interfaces with 15 addresses each, so 4 × 14 + 2 = 58. Both values match the official amazon-vpc-cni-k8s eni-max-pods.txt file.
The same m5.large with prefix delegation is 3 × (9 × 16) + 2 = 434 before any cap. A managed node group would still cap it at 110, which is why the prefix mode result above shows the cap as well.
Managed node group caps
The formula is not the last word on managed node groups. Amazon EKS injects a maxPods value into the node's bootstrap data when you use a managed node group without a custom AMI. That value is capped at 110 for instances with less than 30 vCPUs and 250 for instances with more than 30 vCPUs. The cap takes precedence over maxPodsExpression. To run a different number, use a custom AMI in a launch template and pass the value to the bootstrap script.
If a managed node group mixes instance types, the smallest maximum applies to all nodes in the group.
Pods per node and node count
Divide the pods you need by the effective maximum, then round up. At 500 pods, an m5.large node holds 29, so you need 18 nodes. An m5.xlarge holds 58, so you need 9. Leave room for DaemonSet pods such as monitoring and logging agents, which take pod IPs unless they run with host networking, and for a node going down during an upgrade.
Common mistakes
- Using ENIs × IPs. Leaving out the −1 and the +2 overstates capacity by a few pods on every node, and the scheduler then places pods that have no IP.
- Turning on prefix delegation without changing max-pods. The kubelet keeps the secondary-IP value until you set it, so you get the IP capacity without the pod count.
- Ignoring the 110/250 cap. A large instance on a managed node group rarely reaches its formula value. Plan with the lower of the two numbers.
- Mixing modes on existing nodes. AWS recommends new node groups for the move to prefixes, because nodes that have both kinds of addresses report inconsistent capacity.
- Forgetting the subnet. Prefix mode needs free, contiguous /28 blocks in the subnet. Fragmented subnets can stop new prefixes from being assigned.
Where the numbers come from
The instance table holds the ENI and IPv4-per-interface limits from the official VPC CNI source, dated 2026-10-10. The default-mode formula reproduces the max-pods value in the official file for every type in the table. Only the common families are included. Other types are one lookup away in the EC2 documentation linked below.
Frequently asked questions
What is the max pods formula for EKS nodes?
- With the default VPC CNI secondary IP mode, max pods = (number of network interfaces × (IPv4 addresses per interface − 1)) + 2. The −1 is the primary address the node uses, and the +2 covers the aws-node and kube-proxy pods that run on every node without taking a pod IP.
How does prefix delegation raise the pod limit?
- With ENABLE_PREFIX_DELEGATION set to true, each secondary slot on a network interface holds a /28 prefix of 16 addresses instead of one. The per-slot count is multiplied by 16, so the same instance can host far more pods. The kubelet max-pods value must be raised to match.
Why does my managed node group stop at 110 pods?
- On managed node groups without a custom AMI, EKS injects a maxPods cap: 110 for instances with less than 30 vCPUs and 250 for instances with more than 30 vCPUs. That cap overrides the formula. To go higher, use a custom AMI launch template and set max-pods directly.
Is every EC2 instance type in this calculator?
- The calculator covers the common t3, t3a, t4g, m5, m6i, m7i, m6g, m7g, c5, c6i, c7g, r5, r6i and r7g sizes. For other types, use the instance’s network limits from the EC2 documentation or run the AWS describe-instance-types command and apply the same formula.
Does the calculator change my cluster?
- No. It runs entirely in your browser and does not call AWS or your cluster. It only applies the published formula to the values in its table, so treat the result as a planning number and confirm it on a test node.
Sources
Checked Sources checked 10 October 2026.
- Amazon EKS: How maxPods is determined — The default formula, the +2 host-network offset, and the 110/250 managed node group caps.
- Amazon EKS: Assign more IP addresses to nodes with prefixes — Prefix delegation, /28 prefixes, and the default 110-pod setting.
- EKS Best Practices: Prefix Mode for Linux — Why max-pods stays at the secondary-IP value unless you set it, and the subnet /28 caveat.
- amazon-vpc-cni-k8s: misc/eni-max-pods.txt — Official max-pods value per instance type in default mode. Used as the test vectors.
- amazon-vpc-cni-k8s: pkg/vpc/vpc_ip_resource_limit.go — ENI and IPv4-per-interface limits used for the embedded table.
- Amazon EC2: Maximum IP addresses per network interface — How to look up the interface and address limits for an instance type yourself.