Skip to content
NewFinOps, Kubernetes and AI, on one platform
Book a demo

Google GKE

GKE costs from your BigQuery billing export

KubeOn queries your detailed billing export in BigQuery, uses GKE cost allocation labels where they are enabled, and splits each node pool across the workloads that ran on it.

What KubeOn reads

What KubeOn needs on Google Cloud

Your Google Cloud account

  • BigQuery billing exportWith GKE cost allocation
  • KubeOn service accountRead-only
  • GKE and other clustersThe agent sends a snapshot every hour

KubeOn hub

Fully managed by UnitVane

  1. 1Read the billing data
  2. 2Join it with each snapshot
  3. 3Allocate every node's cost
  4. 4Reconcile to the bill

What you get

  • Cost per team and labelPods, namespaces and teams
  • Each cluster reconciledTo its own bill
  • Savings to act onAs pull requests, or applied by KubeOn

Billing

Cloud Billing detailed usage cost export to BigQuery, net of committed use discounts and credits.

Access

A service account with BigQuery Data Viewer on the export dataset and Job User in the billing project.

Agent identity

A cluster token from KubeOn. No service account or bucket: snapshots go to your organization in KubeOn and nowhere else.

Runs onGoogle Kubernetes Engine StandardGKE AutopilotGKE EnterpriseSelf-managed Kubernetes on Compute Engine

Setup

Three steps to the first allocation

Cluster inventory appears within the first hour. Allocated costs follow as soon as billing data is in.

  1. 01

    Grant read access to the export

    Create a service account and give it read access to the billing dataset.
    gcloud and bq
    # Prerequisite: Cloud Billing > Billing export > Detailed usage cost to BigQuery# dataset: acme-billing:billing_export. GKE cost allocation is optional.gcloud iam service-accounts create kubeon-billing \  --project acme-billing --display-name "KubeOn billing reader"# Read the billing export datasetbq add-iam-policy-binding \  --member="serviceAccount:kubeon-billing@acme-billing.iam.gserviceaccount.com" \  --role="roles/bigquery.dataViewer" \  acme-billing:billing_export# Run queries in the billing projectgcloud projects add-iam-policy-binding acme-billing \  --member="serviceAccount:kubeon-billing@acme-billing.iam.gserviceaccount.com" \  --role="roles/bigquery.jobUser"
  2. 02

    Enable GKE cost allocation

    Optional: adds namespace and label detail to the billing export.
    gcloud
    gcloud container clusters update gke-prod-usc1 \  --region us-central1 \  --enable-cost-allocation
  3. 03

    Install the agent

    One Helm release per cluster, with the cluster's token from KubeOn in a Secret.
    kubeon-agent.yaml
    # kubeon-agent.yaml (GKE)clusterName: gke-prod-usc1kubeon:  existingSecret: kubeon-agent-tokenprometheusUrl: http://prometheus-server.monitoring.svc:9090   # optional

Connecting the bill in KubeOn: each step shows the console steps and the read-only access it needs.

Highlights

Built for how Google Cloud bills

Committed use discounts

Net cost with CUDs and credits applied, plus list cost for comparison.

Autopilot pricing

Autopilot pods priced from their billed vCPU, memory and storage.

Cost allocation labels

GKE's namespace and label detail cross-checks KubeOn's allocation.

Machine family changes

Proposals for smaller machine types or a better-fitting family.

One token per cluster

Revocable in KubeOn; no Google Cloud credentials in the cluster.

Spot and committed use

A Spot planner for your workloads, plus what you bought, when it ends and where coverage has gaps.

FAQ

Google Cloud questions

Let's get started

A 30-minute walkthrough on your own billing data, for your clouds, your clusters and your model providers.