Cloud Cost Optimization

AKS Pricing Guide: VM Costs, Node Pools, and Billing Models Explained

Alberto Grande

Head of Marketing

May 29, 2025

Share via Social Media

Azure Kubernetes Service (AKS) lets you run Kubernetes without managing the control plane, but pricing can be hard to pin down. Between VM node pools, virtual nodes, disks, bandwidth, and load balancers, your actual costs depend on how your workloads are configured and scaled.

This guide breaks down how AKS pricing works, explaining each component so you can see where costs come from and how to estimate them accurately. Whether you’re testing a dev cluster or running production at scale, you’ll get a clear picture of what you’re paying for and how to keep costs under control.

What You Pay for in AKS

AKS manages the Kubernetes control plane for you, but you’re still responsible for the infrastructure your workloads run on. That means compute (VMs), storage, and networking are billed based on Azure pricing—not AKS itself.

The largest share of cost typically comes from compute, which refers to the VMs running in your node pools. Each node pool is a group of Azure VMs with a specific configuration (e.g., VM type, OS, pricing model). These VMs are what actually execute your containers.

Here’s how each cost component breaks down:

Component How You’re Charged Approximate Price Notes
Control plane Free for 1 standard cluster per region per subscription $0 Additional clusters or premium control planes may incur cost
Worker nodes (VMs) Billed per VM (vCPU, memory, OS, region, uptime) ~$0.021–$3.00/hr per VM This is your compute layer and hosts all workloads
Node pools Logical group of VMs with shared config; priced by the VMs Same as worker nodes Each pool can use different VM types or billing models (Spot, Reserved, On-Demand)
Storage Charged per disk used and type (Standard, Premium, etc.) ~$0.03–$0.20/GB/month Azure Disks back your PVCs and ephemeral storage
Network egress Charged per GB based on destination ~$0.01–$0.09/GB Same-region traffic is free. Cross-region and internet egress are the most expensive.
Load balancers 1 free basic LB per cluster; extras billed separately ~$0.025/hr per rule Standard LBs or extra rules cost more
Serverless (ACI) vCPU-seconds + memory-seconds via Azure Container Instances ~$0.000012/vCPU-sec + $0.0000015/GB-sec Used for bursty jobs, not steady workloads

Most of your AKS spend will come from the VMs in your node pools. That’s where cost optimization efforts should start—by rightsizing instances, scaling effectively, and using Spot or Reserved pricing where possible.

AKS Serverless with Virtual Nodes

If you don’t want to manage VM node pools, AKS offers a serverless option via Virtual Nodes—powered by Azure Container Instances (ACI). These containers run without provisioning infrastructure and are billed by the second for the CPU and memory they use.

This model is useful when you want Kubernetes-style deployment without running always-on nodes.

Resource Approximate Price (2025) Notes
vCPU ~$0.000012 per vCPU-second You’re charged for requested CPU, rounded to the second
Memory ~$0.0000015 per GB-second Billed by GB per second of allocated memory

When to Use Virtual Nodes

  • Short-lived, bursty, or batch workloads
  • Development or testing environments that scale to zero
  • Overflow handling when your regular node pools are full

Tradeoffs

  • No GPU or Spot VM support
  • Cold start times can be slower
  • Less control over underlying infrastructure
  • Higher cost per unit compared to node-based compute for steady workloads

Virtual Nodes let you run containers without managing infrastructure—but they’re best suited for burst scenarios, not long-running production services.

AKS Pricing Models

Azure offers flexible pricing options to help you reduce compute costs in AKS. These options apply at the VM level, so they directly affect the cost of each node in your AKS cluster.

Spot VMs

  • Up to 90% cheaper than on-demand
  • Same VM SKUs, but eviction can happen at any time
  • Best for batch jobs, CI pipelines, and stateless workloads
  • Available for Linux and Windows
VM Type On-Demand Spot (est.)
D2s_v5 ~$0.096/hr ~$0.011/hr
D4s_v5 ~$0.192/hr ~$0.021/hr

Spot VMs can dramatically lower costs, but they’re not guaranteed to stay up.

Reserved VM Instances

  • Commit to 1- or 3-year usage
  • Savings up to 72% over pay-as-you-go
  • Locked to a specific region and VM size
  • Great for production workloads with stable usage
Reservation Term Discount vs On-Demand
1 year ~41%
3 years ~62–72%

Can be combined with Azure Hybrid Benefit for even more savings if using Windows licenses.

Burstable VMs (B-series)

  • Earn CPU credits when idle, spend them under load
  • Much cheaper baseline cost than D-series or E-series
  • Ideal for low-traffic apps, dev/test environments, or cron jobs
VM Type vCPU RAM Rate/hr
B2s 2 4 GiB ~$0.021
B4ms 4 16 GiB ~$0.084

Costs are low—but workloads that need sustained CPU won’t perform well without enough credits.

AKS Pricing Examples

To make AKS pricing more tangible, here are a few examples showing how monthly cost varies based on VM type, workload size, and pricing model.

Example 1: Steady Workload on On-Demand VMs

  • 3 nodes in a node pool
  • VM type: D4s_v5 (4 vCPU, 16 GiB RAM)
  • Uptime: 730 hours/month
  • Pricing: On-demand, Linux OS, East US
Resource Rate Monthly Total (per node)
vCPU (4×) $0.048/hour $0.048 × 4 × 730 = $140.16
Memory (16×) $0.0052/GB-hour $0.0052 × 16 × 730 = $60.63
Total $200.79 per node
  • Total for 3 nodes: $602.37/month
  • Add 15% for disks, bandwidth, and LBs → **$692/month**

Example 2: Low-Traffic Dev Cluster with Burstable VMs

  • 2 nodes
  • VM type: B2s (2 vCPU, 4 GiB RAM)
  • Pricing: Burstable, Linux OS, East US
  • Uptime: 730 hours/month
Resource Rate Monthly Total (per node)
vCPU + RAM ~$0.021/hour $0.021 × 730 = $15.33

Total for 2 nodes: $30.66/month

Add 15% overhead → **$35/month**

Burstable instances work well for dev/test environments that don’t need full CPU performance.

Example 3: Spot VMs for Batch Jobs

  • 5 nodes
  • VM type: D2s_v5 (2 vCPU, 8 GiB RAM)
  • Pricing: Spot (up to 90% off), Linux OS
  • Uptime: 200 hours/month (preemptible)
Resource Spot Rate Monthly Total (per node)
vCPU + RAM ~$0.011/hour $0.011 × 200 = $2.20

Total for 5 nodes: $11/month

Even with egress and storage, total stays under $20/month

Spot pools are ideal for interruptible batch jobs like rendering, ML training, or CI builds.

How to Estimate AKS Costs Accurately

Pricing calculators are helpful—but they often miss the nuance of how Kubernetes actually consumes resources. To avoid surprise bills, base your cost estimates on how your workloads behave in real clusters.

1. Node Usage, Not Just Instance Type

Don’t just price a VM—calculate how many are running and how long they stay up. Idle agent nodes from overprovisioning or slow scale-downs can quietly inflate your bill.

2. Requested vs. Actual Usage

Kubernetes bills you based on the resources your pods request—not what they actually use. If every service requests 2 vCPU but only needs 0.5, you’re still paying for the full 2.

3. Storage, Networking, and Load Balancers Add Up

Persistent disks, outbound traffic, and load balancer rules can add 10–30% overhead on top of compute. These often get missed in initial cost estimates.

4. Autoscaling Isn’t Always Cost-Efficient

Cluster Autoscaler doesn’t always scale down fast enough. Nodes can sit idle for hours if workloads terminate but the scale-down delay is too conservative.

5. Use Separate Node Pools Strategically

Run dev/test workloads on cheaper VM SKUs like B-series or Spot. Reserve higher-cost compute for production. Label and isolate workloads to optimize spend per environment.

Don’t just look at monthly totals, use Kubernetes cost monitoring to track per-pod or per-team costs and catch inefficiencies early. Idle agent nodes, oversized requests, or underutilized volumes are some of the most common budget leaks in AKS.

To stay on top of these patterns, many teams use Kubernetes cost optimization tools that provide granular visibility and automate resource tuning based on real usage helping prevent waste before it impacts your bill.

Frequently Asked Questions

Is AKS free?

AKS includes a free managed control plane for one standard cluster per region and subscription. You still pay for VMs, storage, bandwidth, and add-ons.

How is AKS billed?

AKS charges based on the Azure infrastructure you use: VM instances (for nodes), Azure Disks, load balancers, and egress traffic. Control plane is free for the first cluster.

Does AKS support Spot VMs?

Yes. You can configure node pools with Spot pricing to cut costs on interruptible or batch workloads. Spot pricing can save up to 90% over on-demand.

Can I run AKS without using VMs?

Yes. AKS supports serverless workloads via Virtual Nodes (backed by Azure Container Instances). These are billed by the second for CPU and memory used.

What’s the cheapest AKS setup?

Use a small burstable VM (e.g., B2s), minimal storage, no public egress, and scale down during idle hours. This works well for dev/test clusters.

How do I reduce AKS costs?

Use right-sized VM SKUs, enable autoscaling, schedule non-critical workloads on Spot nodes, use separate node pools for dev/test, and track usage with a cost monitoring tool.

Conclusion

AKS offers flexibility and performance for teams running Kubernetes on Azure—but that flexibility comes with complexity in pricing. Whether you’re using on-demand VMs, Spot, Reserved Instances, or Virtual Nodes, it’s critical to understand where your costs are coming from and how to control them.

And once you understand how you’re charged, the real challenge begins: keeping workloads right-sized, minimizing idle resource spend, and making infrastructure decisions that balance performance and cost.

We’ve put together a full AKS Cost Optimization Guide that walks through practical strategies—from request tuning to Spot usage—to help you reduce waste across your clusters.

Reduce Your Cloud Spend with Live Rightsizing MicroVMs
Run workloads in secure, right-sized microVMs with built-in observability and dynamic scaling. Just a single operator and you are on the path to reducing cloud spend.
Get full visiiblity and pay only for what you use.