Managed Kubernetes pricing at AWS, Azure and Google Cloud has two parts: a fee per cluster and hour for the control plane the provider runs, and the capacity the pods run on: virtual machines in a node pool, or the pod resources requested. The bill shows the cluster fee, the nodes as ordinary compute lines, and disks, IP addresses and traffic beside them, never one price for "the cluster", and the billing model decides whether unused node capacity is paid for.
How it works
The control plane (API server, etcd, scheduler) is billed per cluster and hour whatever the number of nodes, and costs more once a cluster runs a Kubernetes version beyond standard support. Worker capacity follows one of two models. Node-based, the nodes are virtual machines billed at their instance type's hourly rate until deleted, whether pods run on them or not. Pod-based, you pay per second for the vCPU, memory and storage requested, and no node appears on the bill.
AWS
Amazon EKS charges per cluster and hour by Kubernetes version: 14 months of standard support from the version's release in EKS, then 12 months of extended support at a higher rate. On top come Provisioned Control Plane (larger control plane tiers, XL to 8XL), EKS Auto Mode (a management fee per EC2 instance it launches, added to the EC2 price), Hybrid Nodes (per vCPU and hour) and EKS Capabilities. Nodes appear as EC2 instances, EBS volumes and public IPv4 addresses under Amazon VPC; AWS bills data transfer between Availability Zones under the rules in data transfer and egress.
AWS Fargate runs EKS pods and ECS tasks without your own nodes. It bills the requested vCPU, memory, operating system, architecture and ephemeral storage above the included 20 GB, from the start of the image download until the task or pod ends, per second with a one minute minimum (five minutes for Windows, ECS only). Fargate Spot is ECS only. Amazon ECS charges no orchestration fee; ECS Managed Instances add a management fee per instance.
Azure
AKS has three cluster management tiers. Free costs nothing and has no financially backed SLA (up to 1,000 nodes, recommended below 10). Standard adds the uptime SLA and up to 5,000 nodes, Premium adds 24 months of Long Term Support; both are billed per cluster and hour. For AKS Automatic, preconfigured with Standard, the pricing page lists a fee per cluster for hosted components and a fee per vCPU by VM category on top of the VM cost. Nodes are billed as virtual machines, disks and public IP addresses separately.
Azure Container Apps runs containers without a cluster. Its Consumption plan bills vCPU-seconds, GiB-seconds and requests, with 180,000 vCPU-seconds, 360,000 GiB-seconds and 2 million requests free per subscription and month; idle minimum replicas cost a reduced idle rate, apps scaled to zero nothing. The Dedicated plan bills workload profiles per vCPU and GiB-hour plus a management fee.
Google Cloud
GKE charges every cluster the same management fee per hour, zonal, regional or Autopilot. The free tier gives each billing account a monthly credit worth one zonal or Autopilot cluster, not usable for regional clusters or compute. On the Extended release channel, a cluster pays an hourly surcharge once its version leaves standard support.
Autopilot bills general-purpose workloads per pod: the CPU, memory and ephemeral storage in the resource requests, per second, for every scheduled pod, including those in CrashLoopBackOff, never for unallocated space. A pod that selects specific hardware (GPUs, machine series) is billed for the whole node plus an Autopilot premium. Cloud Run bills containers per request (CPU and memory only while an instance starts, serves requests or shuts down, plus requests per million) or per instance over its whole lifetime; serverless functions use the same units.
What it means for your cost
| AWS | Azure | Google Cloud | |
|---|---|---|---|
| Control plane | EKS per cluster and hour, extended support dearer | Free tier at no charge, Standard and Premium per cluster and hour | GKE per cluster and hour, one cluster per billing account credited |
| Worker unit | EC2 instance, plus a fee per instance with Auto Mode | VM in a node pool, plus a fee per vCPU with AKS Automatic | Compute Engine node or Autopilot requests |
| Without a cluster | Fargate | Container Apps | Cloud Run |
| Also on the bill | EBS, public IPv4 addresses, cross-zone traffic | disks, public IP addresses | node disks, Backup for GKE, Multi Cluster Ingress |
The cluster fee is its own line per cluster under the provider's Kubernetes service. Nodes sit under EC2, Virtual Machines or Compute Engine and link to the cluster only through tags and labels; Services of type LoadBalancer create load balancers billed by the hour. No line names a namespace or a team. That view comes only from cost allocation by requests and usage: Kubernetes cost data covers the data, Kubernetes allocation the split. The cluster fee, system pods and free node capacity remain shared cost.
With Fargate and Autopilot, free node capacity drops off the bill, but oversized requests cost money directly. The decisions are the model, the control plane tier, and an upgrade cadence that keeps clusters out of extended support. Savings Plans, reservations and committed use discounts apply, by provider, to nodes, Fargate, Container Apps, Autopilot and Cloud Run (choosing between commitment types); Spot nodes belong to Spot and preemptible capacity.
Where it goes wrong
- Extended support nobody planned for. Symptom: the EKS cluster fee rises from USD 0.10 to USD 0.60 per hour with no change to the cluster. Cause: the Kubernetes version has passed its 14 months of standard support; the GKE Extended release channel works the same way.
- Free tier expected for the wrong cluster. Symptom: the full GKE management fee appears despite the free tier. Cause: the credit applies once per billing account, to zonal and Autopilot clusters only.
- Requests nobody set. Symptom: Autopilot or Fargate cost exceeds what the containers consume. Cause: requests are billed, not usage; Autopilot fills in missing requests, raises small ones and bills pods stuck in error loops.
- Nodes without workloads. Symptom: a cluster's compute lines stay flat after workloads were removed. Cause: node-based, every machine bills until deleted, and a node pool minimum keeps it alive.
- Side lines outside the cluster. Symptom: cluster fee and nodes do not explain the bill. Cause: public IPv4 addresses (per task or pod on Fargate), load balancers, disks and data transfer between zones are billed under other services.
Example
List prices read on 2026-10-16: Amazon EKS USD 0.10 per cluster and hour in standard support, USD 0.60 in extended support (listed without a region selector); AKS in Germany West Central EUR 0.087998 (Standard) and EUR 0.527984 (Premium) per cluster and hour, converted by Microsoft from USD; GKE USD 0.10 per cluster and hour for every cluster type, free tier credit USD 74.40 per billing account and month; GKE Autopilot in Frankfurt (europe-west3) USD 0.0573 per vCPU-hour and USD 0.0063421 per GiB-hour; AWS Fargate Linux/x86 in US East (N. Virginia) USD 0.000011244 per vCPU-second and USD 0.000001235 per GB-second.
Sources
Read on 2026-10-16. Amazon EKS pricing, AWS Fargate pricing, Amazon ECS pricing, Azure Kubernetes Service pricing, Cluster management pricing tiers for AKS, Azure Container Apps pricing, Google Kubernetes Engine pricing, Cloud Run pricing.