AKS pricing is made of a cluster management fee per tier (Free, Standard, Premium or AKS Automatic), the virtual machines of the node pools, their disks, the load balancer and public IP addresses around the cluster, outbound bandwidth, and the telemetry that Container Insights writes into a Log Analytics workspace. The node VMs dominate almost every bill, log ingestion comes second, and on a small cluster the management fee is the smallest line of all.

Pricing dimensions

DimensionUnitWhat drives itOptional
Cluster management, Freeno fee, only the resources consumeddevelopment, test, clusters under 10 nodes; up to 1,000 nodes, no financially backed SLAthe default tier of a Base SKU cluster
Cluster management, Standardper cluster and hour (meter Standard Uptime SLA)99.95% uptime SLA on the API server with availability zones, 99.9% without; up to 5,000 nodesrequired for production with an SLA and for the cost analysis add-on
Cluster management, Premiumper cluster and hour (meter Standard Long Term Support)Standard plus 24 months of long-term support for Kubernetes versions; only together with the AKSLongTermSupport support planregulated environments or long upgrade windows only
AKS Automaticper cluster and hour (Automatic Hosted Control Plane) plus one meter per VM family (Automatic General Purpose, Automatic Memory Optimized and others)preconfigured on the Standard tier with the uptime SLA and a pod readiness SLA; node autoprovisioning, managed system node pools, Managed Prometheus and Container Insights are switched on by defaultits own SKU, chosen when the cluster is created
Node poolsVM hour per size and operating systemnumber and size of nodes, Linux or Windows, Spot or regular; system nodes always runnone, at least one node pool runs
DisksGB-month per disk SKU and snapshotOS disks per node (unless ephemeral), persistent volumes through the CSI driversephemeral OS disks avoid the meter
Load balancer and public IPsrule hour, GB processed, IP hourone Standard Load Balancer for services of type LoadBalancer and for egress, one static IP per exposed serviceNAT Gateway or user-defined routing as the egress alternative
BandwidthGB outboundresponses to clients on the internet, replication between regionsnone
Virtual nodesContainer Instances seconds per vCPU and GBpods that the virtual kubelet add-on runs on Azure Container Instances; Linux only, Azure CNI onlyadd-on, off by default
Container Insights and Managed PrometheusGB ingested and GB-month retained in the Log Analytics workspace, metric samplescontainer logs (stdout, stderr), Kubernetes events, performance tables; volume grows with pods and log leveloff by default on AKS Standard, preconfigured on AKS Automatic
Purchase optionsreservation or savings plan on the VM hoursthe steady baseline of the node poolssee Azure reservations and Azure savings plans

The management fee follows the tier, not the size: a Standard cluster with three nodes pays the same hourly rate as one with 500. Microsoft describes Virtual Nodes v2 as a cluster extension in preview that replaces the earlier add-on.

How it appears in your billing data

In the cost export an AKS cluster is not one line but a bundle of meters from several services. Only the management fee carries the service itself: MeterCategory Azure Kubernetes Service, MeterName Standard Uptime SLA for the Standard tier and Standard Long Term Support for Premium; AKS Automatic appears with the product Azure Kubernetes Service - Automatic and the meters Automatic Hosted Control Plane, Automatic General Purpose, Automatic Memory Optimized and the other family meters. A Free cluster has no meter of its own.

Everything else lands on the meters of the service concerned, each with a resource from the cluster's node resource group (MC_, followed by resource group, cluster name and region) as its ResourceId:

  • Node VMs as MeterCategory Virtual Machines with the series as MeterSubCategory (Dsv5 Series, for example) and the size as MeterName (D4s v5, or D4s v5 Spot for Spot), PricingModel OnDemand, Spot, Reservation or SavingsPlan; Azure Virtual Machines pricing describes the meters.
  • OS disks and persistent volumes under Storage with the disk SKUs as MeterSubCategory (Azure managed disks pricing).
  • The Standard Load Balancer under Load Balancer with the meters Standard Included LB Rules and Outbound Rules, Standard Overage LB Rules and Outbound Rules and Standard Data Processed; the public IPs under Virtual Network, MeterSubCategory IP Addresses, MeterName Standard IPv4 Static Public IP.
  • Outbound traffic under Bandwidth (Azure bandwidth and networking pricing).
  • Container Insights under Log Analytics (Analytics Logs Data Ingestion, Analytics Logs Data Retention) or Azure Monitor (Basic Logs Data Ingestion), attributed to the workspace rather than the cluster (Azure Monitor and Log Analytics pricing).
  • Virtual nodes under Container Instances (Container Apps, Container Instances and ACR pricing).

ResourceGroup and Tags tie the lines back to the cluster: the node resource group carries the cluster name, and tags set on the cluster are applied by AKS to the node resource group, the load balancer, the public IP and the other network resources, but not to the node pools; their scale sets and VM instances carry only the tags set on the node pool itself. In the FOCUS export the same lines carry ServiceName as the service (Azure Kubernetes Service, Virtual Machines, Log Analytics, following the meter), x_SkuMeterCategory and SkuMeter for the meter, ChargeCategory Usage for consumption and Purchase for a reservation purchase, and CommitmentDiscountId on the hours a reservation or savings plan covered.

None of these exports knows a namespace, a deployment or a pod. The AKS cost analysis add-on (Standard or Premium tier, built on OpenCost) reconciles usage data from the cluster with the invoice data and shows namespace and asset views in Cost Management with four charge types: idle (provisioned capacity no workload uses), service (uptime SLA, Defender for Containers), system (capacity AKS reserves on every node for the kubelet and container runtime) and unallocated. The views exist only for Enterprise Agreement and Microsoft Customer Agreement offers, data arrives after 8 to 24 hours, and virtual nodes are not supported. What container cost data can and cannot do in general is covered under Kubernetes cost data.

An AKS clusterAzure Kubernetes Service:only the managementfee, by tierVirtual Machines: thenode pools, with thepricing modelStorage, Load Balancer,Virtual Network, Bandwidth,Log Analytics: disks, balancer,IPs, egress, Container InsightsTied to the cluster by the noderesource group MC_ and thetags AKS appliesNamespaces, deployments and pods:only the cost analysis add-on, withidle, service, system andunallocated charges
An AKS cluster is a bundle of meters from several services tied back by the node resource group, and only the cost analysis add-on reaches namespaces

Levers

Configuration. The Free tier covers development and test; Microsoft recommends it for clusters under ten nodes with no need for an SLA. Premium pays off only when a Kubernetes version must run beyond community support, because the LTS fee is a multiple of the Standard fee. For Container Insights, the logs presets, the table selection in the data collection rule, namespace and annotation filters for stdout and stderr, and Basic Logs for ContainerLogV2 decide the ingested volume; Microsoft also names ingestion-time transformations and switching the visualisations to Managed Prometheus as the cheaper metric source. Ephemeral OS disks take the per-node disk meter off the bill where the VM size allows them.

development and test,under ten nodesan SLAa version beyondcommunity supportWhat does thecluster need?Free tierStandard tierPremium: the LTS feea multiple of StandardWhatever the tier: the node poolsunder reservations, savings plansor Spot, sized by the autoscalerto the requests; Container Insightsbounded by presets, filtersand Basic Logs
The tier follows the cluster's need, the node pools follow the requests, and the logs follow the data collection rule

Purchase option. Node pools are ordinary VMs: reservations and savings plans cover their hours, and Spot node pools lower the hourly rate for interruptible work (spot and preemptible capacity). Which form fits the baseline is a question for the commitment strategy; the management fee itself has no purchase option.

Architecture. The cluster autoscaler or node autoprovisioning sizes the node count to the requests, and requests that match actual usage lower the idle charge the cost analysis add-on reports (Kubernetes efficiency, rightsizing). Development clusters can scale to zero nodes or stop overnight (scheduling and auto-scaling). Many small clusters multiply the management fee, system nodes, load balancers and log workspaces; namespaces in a larger cluster share them, and Kubernetes cost allocation hands them back to teams. One service of type LoadBalancer per application creates one public IP each; an ingress controller or the application routing add-on folds them into one.

Where it goes wrong

  • The VM cost does not show up under the cluster. The node VMs sit in the MC_... node resource group and on the Virtual Machines meters; filtering on the cluster object's resource group shows only the management fee, and filtering on the cluster tag loses the VMs, because cluster tags are not inherited by node pools. Group by the node resource group's ResourceGroup, or set the tags on every node pool as well.
  • Log Analytics costs more than the nodes. Container Insights collects stdout and stderr of every pod and all Kubernetes events into one workspace by default; with verbose logging the ingestion grows faster than the cluster. Check the Container Insights Usage workbook for the tables and namespaces that drive the volume, then set a preset, filters or Basic Logs.
  • The cluster is empty, the bill is not. System nodes, the Standard fee, the load balancer, public IPs and the workspace keep running without workloads. Stop development clusters that nobody needs at night, or scale the node pool to zero.
  • Idle charge stays high although the autoscaler runs. The autoscaler reacts to requests, not to usage; oversized requests keep nodes alive that are barely used. Compare requests with measured usage and use the Vertical Pod Autoscaler in recommendation mode.
  • A Premium fee nobody needs. A cluster was moved to Premium to postpone an upgrade and stayed there. Reset the support plan to KubernetesOfficial and lower the tier to Standard once the version is back in community support.
  • A reservation does not cover the node pools. The reservation was bought for another VM series or region, or node autoprovisioning picks changing sizes. Check PricingModel and CommitmentDiscountId on the node lines and align the reservation with the series actually running.
  • Several public IPs per application. Every service of type LoadBalancer gets its own static IP and its own rules on the load balancer. Count the services and consolidate them behind one ingress.

Example

List prices from the Azure Retail Prices API in EUR for Germany West Central, read on 2026-10-21, consumption prices without a reservation: cluster management costs EUR 0.088 per cluster and hour on the Standard tier (Standard Uptime SLA) and EUR 0.528 on the Premium tier (Standard Long Term Support); for AKS Automatic the API lists the meter Automatic Hosted Control Plane at EUR 0.1408 per hour and the family meters Automatic General Purpose at EUR 0.009, Automatic Memory Optimized at EUR 0.0142 and Automatic GPU Accelerated at EUR 0.0411, each with a unit of one hour and without the API saying what one unit covers. A Linux node of size Standard_D4s_v5 costs EUR 0.2024 per hour, EUR 0.0374 as a Spot node. Around the cluster, a static Standard IPv4 address costs EUR 0.0044 per hour, and the Standard Load Balancer EUR 0.022 per hour for the included rules, EUR 0.0088 per additional rule and hour and EUR 0.0044 per GB processed. Log ingestion costs EUR 2.6311 per GB in Analytics Logs and EUR 0.572 per GB in Basic Logs, retention beyond the included period EUR 0.1144 per GB and month. Three D4s_v5 nodes (EUR 0.6072 per hour) therefore cost almost seven times the Standard fee, and a single GB of Analytics Logs per day already exceeds that day's management fee (EUR 2.112); the management fee is not the lever, nodes and logs are.

Sources

Read on 2026-10-21. Microsoft Learn: AKS Free, Standard and Premium pricing tiers, Introduction to AKS Automatic, Virtual nodes, Monitoring cost for Container Insights, AKS cost analysis add-on, Understand AKS usage and costs, Azure tags in AKS, Cost details fields, FOCUS cost and usage details schema. Prices: AKS pricing page (script-rendered, no readable amounts) and the Azure Retail Prices API in EUR: Azure Kubernetes Service in Germany West Central, Standard_D4s_v5, public IP addresses, Standard Load Balancer, Log Analytics, Basic Logs.