What 'namespace cost' really means

There are at least three valid definitions: (1) cost of the node pool a namespace is pinned to, (2) cost-share by pod request fraction across shared nodes, (3) cost of cluster-wide resources (ingress, monitoring) allocated by traffic or fairness. Picking a definition before picking a tool prevents wasted work.

Reading EKS, GKE, and DOKS cost from provider billing

AWS EKS line items include the node EC2 instances and EBS volumes; on GKE you get node GCE VMs in the BigQuery export; on DOKS the Droplets backing the cluster show on the DO invoice. All three are billed per node, which is the natural unit for node-pool-pinned allocation.

Surfacing Kubernetes labels through cost-allocation tags

AWS supports propagating Kubernetes labels to EC2 instance tags so they appear in CUR (resourceTags/user:<label>). GKE labels flow through to the BigQuery billing export's labels array. DOKS surfaces cluster name and node pool ID on the underlying Droplets. With these, label-level rollup is available without an in-cluster agent.

Three allocation models

Per-request: split each node-pool's cost across namespaces by aggregated pod CPU request fraction over the period. Per-node-pool ownership: assign each node pool to one namespace via taints and labels. Per-namespace pinning: dedicate node pools to top-3 namespaces; pool the rest into a shared bucket.

Worked example: 4 namespaces across two node pools

Node pool A ($420/mo) is pinned to namespace 'web' via a taint. Node pool B ($310/mo) hosts 'api', 'jobs', and 'system'. CPU request fractions over 30 days were 60/30/10. The result: web=$420, api=$186, jobs=$93, system=$31.

When you do need Kubecost or OpenCost

Pod-level efficiency analysis (idle time, request vs. usage, eviction patterns) needs in-cluster metrics, which means Prometheus and an agent. If 'which pod over-requested CPU' is a regular question, install Kubecost. If 'which namespace cost what' is enough, provider billing plus labels works.

Keeping it in the same ledger as RDS, S3, and Spaces

Treating Kubernetes namespace cost as just another line in the project ledger — next to managed databases, object storage, and managed services — is the value of a multi-cloud cost tool. Specialist in-cluster tools answer in-cluster questions; the project ledger answers 'who owns this bill?'

Who tovin.io is for

Frequently asked

Can I do namespace allocation without Prometheus?

Yes, at node-pool or label-level granularity. For pod-level efficiency, you still want OpenCost or Kubecost.

Does this work on DigitalOcean Kubernetes?

Yes. DOKS exposes the same cluster labels on managed node pools that DO billing surfaces, so label-driven allocation works the same way.

What about shared cluster-wide resources like ingress controllers?

Allocate them by traffic share, by namespace fairness, or split evenly across namespaces. Document the assumption so reviewers don't relitigate it monthly.