🎉 DevOps Interview Prep Bundle is live — 1000+ Q&A across 20 topicsGet it →
All Articles

Kubecost vs OpenCost: Kubernetes Cost Management in 2026

Honest hands-on review of Kubecost and OpenCost for Kubernetes cost allocation. What each tool actually does, installation via Helm, free tier limits, and when to pay for Kubecost.

DevOpsBoys4 min read
Share:Tweet

If you're running workloads on Kubernetes and don't have cost visibility per namespace, team, or workload, you're either overpaying or flying blind — usually both. Kubecost and OpenCost are the two tools most teams reach for. Here's what they actually do, what they cost, and when each one makes sense.

What Problem These Tools Solve

Kubernetes clusters pool compute resources. A node costs $X/hour, but your billing doesn't tell you whether the API team or the data team is responsible for that cost. Without cost allocation, FinOps conversations are impossible.

Both tools solve this by:

  1. Pulling cloud billing data (AWS Cost Explorer, GCP Billing API)
  2. Pulling Kubernetes metrics (CPU/memory requests, actual usage) via Prometheus
  3. Allocating cloud costs to K8s objects (namespaces, deployments, pods, labels)

The difference is how deep each tool goes beyond that basic attribution.

OpenCost: The CNCF Free Option

OpenCost is a CNCF sandbox project, originally built by Kubecost and then donated to the foundation. It's the open-source baseline — free forever, no license.

What it does:

  • Cost allocation per namespace, pod, deployment, service
  • Supports AWS, GCP, Azure, and on-prem (via custom pricing)
  • Exposes a REST API and a basic UI
  • Integrates with Prometheus (you scrape OpenCost metrics into your existing stack)

What it doesn't do:

  • No cost recommendations or rightsizing suggestions
  • No savings insights ("you could save $X by switching to Spot")
  • No multi-cluster aggregation in the UI
  • No alerts or budget notifications
  • No chargeback reports out of the box

Installing OpenCost with Helm

bash
# Add Helm repo
helm repo add opencost https://opencost.github.io/opencost-helm-chart
helm repo update
 
# Install into the opencost namespace
helm install opencost opencost/opencost \
  --namespace opencost \
  --create-namespace \
  --set opencost.exporter.cloudProviderApiKey="" \
  --set opencost.ui.enabled=true

For AWS, add your account ID so OpenCost can pull pricing:

bash
helm upgrade opencost opencost/opencost \
  --namespace opencost \
  --set opencost.exporter.aws.account_id="123456789012" \
  --set opencost.prometheus.internal.enabled=true

Access the UI:

bash
kubectl port-forward -n opencost service/opencost 9090:9090
# Open http://localhost:9090

The UI shows cost by namespace and workload with a 7-day default window. Functional, not beautiful.

Query the API directly:

bash
# Cost by namespace for last 24 hours
curl "http://localhost:9003/allocation?window=24h&aggregate=namespace&step=1d"

Kubecost: The Commercial Product

Kubecost is built on top of OpenCost and adds a significant layer of features. It has a free tier (Kubecost Free) and paid tiers (Business and Enterprise).

Free tier limitations:

  • Single cluster only
  • 15-day data retention
  • No SSO, no RBAC
  • Basic cost allocation, no recommendations in the free tier (as of 2026)

Paid tier adds:

  • Multi-cluster aggregation (one dashboard for all clusters)
  • Rightsizing recommendations ("reduce this deployment's CPU request by 40% — save $180/month")
  • Savings insights: Spot node opportunities, Reserved Instance coverage gaps, idle cost breakdown
  • Cluster health score
  • Budget alerts and email reports
  • Chargeback and showback reports for internal billing
  • 90-day+ data retention
  • SSO (Okta, Google)

Installing Kubecost with Helm

bash
helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm repo update
 
helm install kubecost kubecost/cost-analyzer \
  --namespace kubecost \
  --create-namespace \
  --set kubecostToken="your-token-here" \
  --set prometheus.server.persistentVolume.enabled=true

Get a free token at kubecost.com. Without a token, it still works but features are restricted.

bash
kubectl port-forward -n kubecost service/kubecost-cost-analyzer 9090:9090

The UI is significantly better than OpenCost — you get summary cards, trend charts, and namespace drill-downs immediately.

How They Calculate Costs

Both tools use the same core methodology:

Pod Cost = (CPU request × CPU $/hour) + (RAM request × RAM $/hour) + (GPU if applicable)

They pull on-demand pricing from the cloud provider's pricing API, then apply it proportionally to what each pod requests. Actual usage is also tracked but billing is based on requests (since you're paying for reserved capacity whether you use it or not).

For AWS, they read from the AWS Cost and Usage Report (CUR) if configured — this gives actual invoice-level prices including Reserved Instance and Savings Plan discounts, which makes the numbers much more accurate than raw on-demand pricing.

Honest Assessment

OpenCost is enough if:

  • You have one or two clusters
  • You need basic namespace-level cost visibility
  • You have a Grafana + Prometheus stack and can build dashboards on top of OpenCost metrics
  • Budget for tooling is zero

Upgrade to Kubecost paid if:

  • You manage 3+ clusters and need a unified view
  • You have internal chargeback requirements (platform team billing individual product teams)
  • You want actionable rightsizing recommendations without building them yourself
  • You have significant Reserved Instance or Savings Plan coverage and need accurate discount attribution

Avoid Kubecost paid if:

  • You're a small team on a single cluster — OpenCost + Grafana dashboards covers you
  • You're already paying for Datadog or Datadog Cost Management — overlapping tools

Verdict

OpenCost is the right default. It's free, CNCF-backed, and gives you the cost visibility that most teams actually need. Install it, build a Grafana dashboard on top of it, and you're done.

Kubecost becomes worth the money specifically for multi-cluster environments and teams doing internal chargeback. The recommendations engine pays for itself quickly if you have underutilized nodes — but only if someone is actually acting on the recommendations.

Start with OpenCost. If you find yourself wishing for recommendations and multi-cluster views after a month, evaluate Kubecost Business pricing against your actual cloud bill to see if the ROI makes sense.

🔧

Today I Fixed

Short real fixes from production — posted daily

Browse fixes
Newsletter

Stay ahead of the curve

Get the latest DevOps, Kubernetes, AWS, and AI/ML guides delivered straight to your inbox. No spam — just practical engineering content.

Related Articles

Comments