Skip to content
Calcrivo

Azure Kubernetes Service (AKS) Calculator

Size AKS node pools from pod requests, applying Azure's CPU and memory reservations and the pods-per-node ceiling.

Inputs

pods
millicores
MiB
vCPU
GiB
pods

Azure CNI defaults to 30; the hard ceiling is 250.

pods

DaemonSets such as kube-proxy, CSI drivers and monitoring agents.

USD/hour
USD/hour

Free tier costs nothing; the Standard tier uptime SLA lists near $0.10/hour.

Nodes Required

16nodes

Allocatable CPU per Node

3.92vCPU

Allocatable Memory per Node

12.67GiB

Usable Pod Slots per Node

24pods

Binding Constraint

CPU requests

Monthly Cost

$2,242.56

Step by step

  1. Values used

    Pods to schedule = 240 pods; CPU request per pod = 250 millicores; Memory request per pod = 512 MiB; vCPUs per node = 4 vCPU; Memory per node = 16 GiB; Maximum pods per node = 30 pods; System pods per node = 6 pods; Node rate = 0.1920 USD/hour; Control plane rate = 0 USD/hour

  2. Azure Kubernetes Service (AKS)

    nodes = max(pod CPU ÷ allocatable CPU, pod memory ÷ allocatable memory, pods ÷ usable slots), where allocatable memory subtracts 25%/20%/10%/6%/2% of successive memory bands plus a 750 MiB eviction threshold.

  3. Nodes Required

    = 16 nodes

  4. Allocatable CPU per Node

    = 3.92 vCPU

  5. Allocatable Memory per Node

    = 12.67 GiB

  6. Usable Pod Slots per Node

    = 24 pods

  7. Binding Constraint

    = CPU requests

  8. Monthly Cost

    = 2,242.56

How it works

AKS reserves node resources on a sliding scale — 25% of the first 4 GiB of memory, 20% of the next 4, 10% of the next 8, 6% of the next 112 and 2% beyond, plus a 750 MiB eviction threshold — so a 16 GiB node schedules roughly 12.5 GiB of pods. The node count is then the worst of three independent constraints: CPU requests, memory requests and the pods-per-node limit that Azure CNI defaults to 30. The pods-per-node limit is set at node-pool creation and cannot be changed afterwards, so a cluster sized only on CPU and memory can run out of IP-backed pod slots at a third of its capacity; the control plane itself is free on the Free tier, meaning almost the whole AKS bill is ordinary VM cost.

Formula

Azure Kubernetes Service (AKS)

nodes = max(pod CPU ÷ allocatable CPU, pod memory ÷ allocatable memory, pods ÷ usable slots), where allocatable memory subtracts 25%/20%/10%/6%/2% of successive memory bands plus a 750 MiB eviction threshold.

allocatable
Node capacity left after kubelet and system reservations
usable slots
Pods-per-node limit minus the DaemonSet pods every node runs
eviction threshold
750 MiB AKS holds back so the kubelet can evict before the node stalls

Frequently Asked Questions

How is Azure Kubernetes Service (AKS) calculated?

nodes = max(pod CPU ÷ allocatable CPU, pod memory ÷ allocatable memory, pods ÷ usable slots), where allocatable memory subtracts 25%/20%/10%/6%/2% of successive memory bands plus a 750 MiB eviction threshold. AKS reserves node resources on a sliding scale — 25% of the first 4 GiB of memory, 20% of the next 4, 10% of the next 8, 6% of the next 112 and 2% beyond, plus a 750 MiB eviction threshold — so a 16 GiB node schedules roughly 12.5 GiB of pods. The node count is then the worst of three independent constraints: CPU requests, memory requests and the pods-per-node limit that Azure CNI defaults to 30.

Why does Azure Kubernetes Service (AKS) matter?

The pods-per-node limit is set at node-pool creation and cannot be changed afterwards, so a cluster sized only on CPU and memory can run out of IP-backed pod slots at a third of its capacity; the control plane itself is free on the Free tier, meaning almost the whole AKS bill is ordinary VM cost.

What values do I need to enter?

This calculator takes 9 inputs: Pods to schedule, CPU request per pod, Memory request per pod, vCPUs per node, Memory per node, Maximum pods per node, System pods per node, Node rate, Control plane rate. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

You might also need