Cluster Cost Per Team
Allocate cluster cost to teams. The pattern.
Model
Cluster cost per team is the discipline of attributing Kubernetes costs to the teams that consume them. Without attribution, the cluster's cost is the platform team's bill; teams have no incentive to optimize. With attribution, teams see their costs; behavior changes; the platform's cost trajectory improves.
What the cost model looks like:
- Per pod: cpu times time times node-cost-rate.: Each pod's cost is computed: CPU usage times time times the node's cost rate. The node's cost rate is the per-CPU-hour cost; the math attributes node cost to pods proportionally.
- Sum per team.: Pods are tagged with team_id (via labels or annotations); the per-pod costs sum to per-team totals. The team's cost is the aggregate of their pods' costs.
- Approximation.: The model approximates. Memory, network, storage all are simplified or omitted. The approximation is good enough for cost attribution; the complexity is bounded.
- Tools: Kubecost, OpenCost.: Open-source tools handle the math. Kubecost and OpenCost both produce per-team cost attribution; the team installs them; the data is automatic.
- Tag enforcement.: The attribution depends on team tags. Tag enforcement at admission ensures every pod has a team_id; without enforcement, untagged pods land in a shared bucket.
The model is the foundation. Without it, attribution is impossible.
Dashboard
The per-team cost dashboard makes attribution visible. Teams see their costs; trends are observable; the data drives team-level optimization conversations.
- Per-team monthly K8s cost.: Each team's monthly cluster cost. The number is concrete; budget owners see what their team is consuming.
- Trends.: Cost trends over months. Growth that exceeds traffic growth indicates inefficiency; the trend is the optimization signal.
- Drives optimisation conversations.: The cost data drives conversations. "Why is our cost up 50% this quarter?" leads to investigation; investigation produces specific optimizations; the cycle improves the team's posture.
- Compare across teams.: Different teams have different cost profiles. Comparing produces benchmarks; teams that are cost-efficient share their patterns; cluster-wide efficiency improves.
- Per-service breakdown.: Within a team, per-service breakdowns reveal which services are most expensive. The team's optimization queue is the top-spending services.
The dashboard is the visibility layer. Without it, the cost data exists but does not drive action.
Cap
Some teams add explicit budget caps. Teams cannot exceed their budget without approval; the friction produces deliberate decisions about cost.
- Per-team budget.: Each team has a budget. The budget reflects business agreement; the team operates within it; significant deviations require conversation.
- Teams cannot exceed without approval.: If the team needs more capacity than the budget allows, they request approval. The approval is reviewed; the increase is bounded; the discipline is preserved.
- Friction.: The approval process is friction. Friction is sometimes good: it produces deliberate decisions; teams think before consuming; the cost discipline is reinforced.
- Intentional.: The friction is intentional. Without it, teams add capacity reflexively; with it, teams justify each significant addition.
- Adjust budgets quarterly.: Budgets are reviewed quarterly. As the business changes, budgets change; the cap is realistic; the discipline stays sustainable.
Cluster cost per team is one of those FinOps disciplines that drives behavior change. Nova AI Ops integrates with cluster cost tools, surfaces per-team patterns, and produces the cost attribution that supports the optimization conversation.