On-premises and data centers
Kubernetes cost allocation for clusters that never had a bill
On-prem clusters run on hardware that was paid for years ago. KubeOn prices that capacity with your rate cards or your hardware cost, then allocates it to teams the same way it does in the cloud.
What KubeOn reads
What KubeOn needs in your data center
Your data center
- Your rate cardOr amortized hardware cost
- Outbound HTTPSNo inbound port
OpenShift, Rancher, Tanzu or k3sThe agent sends a snapshot every hour
KubeOn hub
Fully managed by UnitVane
- 1Load your rates
- 2Join them with each snapshot
- 3Allocate every node's cost
- 4Show idle capacity
What you get
- Cost per team and labelPods, namespaces and teams
- Priced with your ratesThe same report as any cloud
- Savings to act onAs pull requests, or applied by KubeOn
Pricing
Rate cards per node pool or label (vCPU-hour, GiB-hour, GPU-hour, storage GiB-month), or hardware purchase price over a depreciation period plus power, space and support.
Network
Outbound HTTPS from each cluster to KubeOn, which runs everything else. No inbound port.
Agent identity
A cluster token from KubeOn, in a Kubernetes Secret. Snapshots go to your organization in KubeOn and nowhere else.
Setup
Three steps to the first allocation
Cluster inventory appears within the first hour. Allocated costs follow as soon as billing data is in.
01
Define your rates
Write a rate card per node pool, or enter hardware cost and let KubeOn amortize it.rate-cards/dc1-standard.yaml# rate-cards/dc1-standard.yamlapiVersion: kubeon.io/v1kind: RateCardmetadata: name: dc1-standardspec: currency: USD effectiveFrom: "2026-01-01" # Option 1: unit rates, per node pool or node label rates: - match: { nodeLabel: "node.kubernetes.io/pool=general" } vcpuHour: 0.0312 memoryGiBHour: 0.0041 - match: { nodeLabel: "node.kubernetes.io/pool=gpu" } vcpuHour: 0.0312 memoryGiBHour: 0.0041 gpuHour: 1.18 storage: - storageClass: ceph-rbd gibMonth: 0.06 # Option 2: amortized hardware, spread across the nodes it covers hardware: - match: { nodeLabel: "kubeon.io/rack=r12" } purchasePrice: 184000 depreciationMonths: 48 monthly: power: 1450 space: 900 support: 61002
Install the agent
The same chart, with the rate card named in the values.kubeon-agent.yaml# kubeon-agent.yaml (on-premises)clusterName: dc1-prodkubeon: existingSecret: kubeon-agent-tokenpricing: rateCard: dc1-standard # the rate card that prices this cluster's nodes03
Allow outbound HTTPS
The agent sends snapshots to KubeOn over port 443. Nothing else in the data center needs to change.Helmhelm upgrade --install kubeon-agent oci://registry.kubeon.io/kubeon/charts/kubeon-agent \ --version 0.6.0 \ --namespace kubeon --create-namespace \ -f kubeon-agent.yaml
Highlights
Built for how data centers are priced
Rate cards
Unit rates per node pool or label, effective-dated so a new rate applies from its start date and earlier days keep theirs.
Hardware amortization
Purchase price over a depreciation period, plus power, space and support.
GPU pricing
GPU-hour rates for accelerator nodes, with idle GPU time reported.
Hybrid views
On-prem and cloud clusters in the same allocation, budget and report.
Outbound only
One HTTPS destination, no inbound port, no Service or Ingress.
Self-hosted models
GPUs priced by rate card, with idle time shown beside each one.
FAQ
On-premises questions
Other platforms
Let's get started
A 30-minute walkthrough on your own billing data, for your clouds, your clusters and your model providers.