Kubernetes

EKS vs GKE for a mid-size team: cost and operational trade-offs

Where Amazon EKS and Google GKE really differ for a team of five to fifty engineers, what each costs beyond the price list, and how I help a team choose.

13 Oct 20266 min read

I build and run clusters on both Amazon EKS and Google GKE, and the question comes up in almost every new project: which one should we use? For a mid-size team, say five to fifty engineers with one or two people who own the platform, the honest answer is that both run Kubernetes well. The difference is in what you have to build and operate around the cluster, and that is where the cost hides.

Start with where the rest of your system lives

Before comparing clusters, look at everything else. A cluster is rarely the only thing a team runs: there are databases, queues, object storage, identity, networking to offices or partners, and often a data platform.

  • If most of it is already on AWS, EKS is usually the right call. Pods reach RDS, SQS and S3 over the same VPC, with IAM roles you already manage, and data stays inside one provider's network and bill.
  • If you are on Google Cloud, or your data lives in BigQuery, GKE is the natural choice for the same reasons.
  • Starting from nothing, both are viable. Then the operational trade-offs below decide it.

Cross-cloud traffic costs money and adds latency, and two IAM systems double the access reviews. Moving a cluster to the "better" Kubernetes service while the databases stay behind is almost never worth it.

What the price list says

The control plane is the easy part to compare. At the time of writing:

ItemEKSGKE
Control plane, per cluster$0.10 per hour (about $73 a month)$0.10 per hour (about $73 a month)
Free allowancenonemonthly credit covering one zonal or Autopilot cluster
Version past standard support$0.60 per hour (extended support)$0.60 per hour (extended period)

Prices change, so check the EKS pricing page and the GKE pricing page before you budget.

Two things in this table matter more than the base fee:

  • Extended support is a tax on not upgrading. Running an old Kubernetes version costs six times the normal control plane fee on both platforms. A team that cannot upgrade regularly pays for it every hour. The fix is a tested upgrade procedure, not a cheaper provider.
  • The fee is per cluster. One cluster per environment per team multiplies quickly. Three environments for four teams is twelve control planes before a single workload runs. Fewer, shared clusters with namespaces and policies are usually cheaper and easier to keep upgraded.

Where the real money goes

For a mid-size team, the control plane is a rounding error next to these:

  • Compute. Nodes are most of the bill on both platforms. What matters is how well they are packed: requests that match real usage, autoscaling that removes idle nodes, and spot or preemptible capacity for workloads that tolerate interruption. A badly sized cluster on the cheaper platform costs more than a well-sized one on the other.
  • Networking. NAT gateways, load balancers and cross-zone traffic add up. On AWS in particular, a NAT gateway per zone plus data processing charges can surprise a team that pulls large images or talks to external APIs a lot. VPC endpoints for the services you call most reduce it.
  • Observability. Managed logging and metrics on either platform charge by volume. Verbose application logs shipped by default can cost more than the cluster.
  • People. The hours your platform engineers spend on upgrades, add-ons and incidents. This is where the two services differ most.

Operational trade-offs

GKE does more out of the box

GKE has been managed Kubernetes for longer, and it shows in the defaults:

  • Autopilot runs the nodes for you. You describe pods; Google provisions and patches the capacity, and you pay for what the pods request. For a team without a dedicated platform engineer, this removes a whole category of work.
  • Release channels and maintenance windows make upgrades routine. Clusters follow a channel and upgrade inside the windows you set.
  • Integrated logging and metrics are on by default.

The trade-off is control. Autopilot restricts privileged workloads, some DaemonSets and node-level tuning. Most business applications never notice; some security and networking agents do.

EKS gives you more pieces to assemble

An EKS cluster is closer to raw Kubernetes. A production setup needs decisions and code for:

  • the VPC CNI and IP address planning, since every pod gets a VPC address;
  • a node autoscaler, usually Karpenter, which is very good at bin packing and spot usage once configured;
  • the AWS Load Balancer Controller, ExternalDNS and certificates;
  • pod identity so workloads get AWS permissions through their own roles;
  • add-on versions that must be upgraded together with the cluster.

EKS has closed part of the gap with managed add-ons, EKS Auto Mode and Pod Identity, but the cluster still asks more design decisions of you up front. In exchange you get fine control over networking, instance types and how capacity is bought, and everything is in the same AWS account model as the rest of your infrastructure.

Upgrades

Both providers release a new Kubernetes minor version every few months, and both charge extra for staying behind. In practice:

  • GKE upgrades the control plane and nodes for you within the release channel and maintenance windows. Your job is to keep workloads compatible: deprecated APIs, Pod Disruption Budgets and enough replicas.
  • EKS upgrades the control plane on request; nodes and add-ons are yours to roll. With managed node groups or Karpenter this is a routine, scripted job, but it is a job.

On either platform, the clusters that fall behind are the ones where nobody owns the upgrade. Whatever you choose, put the procedure in writing and run it on a staging cluster first.

How I help a team decide

When a team asks me to choose, I go through these questions:

  1. Where do the data and the other services live? This usually decides it.
  2. Who will operate the cluster? No dedicated platform person points towards GKE Autopilot, or towards a deliberately small EKS setup built entirely in Terraform with few add-ons.
  3. Do you need node-level control? Custom networking, privileged agents or specific instance types favour EKS or GKE Standard.
  4. How many clusters do you really need? Usually fewer than planned.
  5. What will the first year cost, including compute at realistic utilisation, networking and observability, not only the control plane?

Either way, the cluster goes into Terraform from day one, with the same review process as application code. The checklist from A production-ready Kubernetes cluster on EKS with Terraform applies to GKE almost unchanged.

The short version

  • Pick the platform where the rest of your system already lives.
  • Starting fresh with a small platform team, GKE Autopilot needs the least operational work.
  • If you need fine control or are already deep in AWS, EKS is excellent once the add-ons are in code.
  • The control plane fee is the same; compute packing, networking, observability and people decide the bill.
  • Upgrade on schedule. Extended support costs six times the standard fee on both.

If you are choosing between the two, or want a review of what an existing cluster really costs, this is the kind of work I do. The contact form is the quickest way to reach me.