GPU data centers
Owned GPUs, priced and planned like cloud ones
GPU servers in your data center have no hourly bill, so their idle hours are invisible. A rate card gives every GPU an hourly price. From then on, owned GPUs are allocated to teams, compared with cloud and planned like any other capacity, with no data leaving your network on a self-hosted hub.
GPU data centers workflow
Who does what
Price and plan the GPUs you own
Follow the inputs, decision and output for this workflow.
- KubeOn, automated
- Your systems and people
- Step 1, Rate card, by Your finance team:
GPU-hour rates, or purchase price over depreciation plus power, space and support.
- Step 2, Snapshots, by Agent:
Hourly GPU capacity, requests and utilization from each on-premises cluster.
- Step 3, Allocate, by KubeOn hub:
Owned GPU cost split by GPU requests, idle owned GPUs reported with their cost.
- Step 4, Plan, by Capacity owner:
Use idle owned capacity, by sharing or rescheduling, before the next hardware order.
KubeOn never changes your clusters. With a self-hosted hub, no data leaves your network.
Read the workflowWho does what
Price and plan the GPUs you own
Follow the inputs, decision and output for this workflow.
- 01
Rate card
GPU-hour rates, or purchase price over depreciation plus power, space and support.
Your finance team
- 02
Snapshots
Hourly GPU capacity, requests and utilization from each on-premises cluster.
Agent
- 03
Allocate
Owned GPU cost split by GPU requests, idle owned GPUs reported with their cost.
KubeOn hub
- 04
Plan
Use idle owned capacity, by sharing or rescheduling, before the next hardware order.
Capacity owner
KubeOn never changes your clusters. With a self-hosted hub, no data leaves your network.
Read the workflowThe problem
Bought once, then invisible
No invoice
The servers came from a capital budget years ago, so the teams using them never see a cost.
Power is the hidden line
GPU servers draw far more than general servers, and the facility adds cooling and distribution on top.
Buying before using
New hardware gets ordered while owned GPUs sit allocated but barely used.
No like-for-like comparison
Cloud GPUs have an hourly price and owned ones do not, so the build-or-rent decision is a guess.
GPU-hour rates
A GPU-hour rate from what the servers really cost
Set a GPU-hour rate per node pool or label, or attach the purchase price, depreciation period and monthly power, space and support to the racks they cover. Rate cards are effective-dated, so a new support contract changes next month, not last year.
- Unit rates or amortized hardware
- Matched to nodes by pool or label
- Reviewed with finance, versioned in Git
# 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: 610Same method as cloud
Owned GPUs allocated by request, idle GPUs reported
Once a GPU has a rate, it is allocated exactly like a cloud GPU: by the GPUs pods requested each hour, with unrequested GPUs reported as idle owned capacity. Teams see their data center GPU cost next to their cloud spend.
- Hourly GPU requests per pod
- Idle owned GPUs with their monthly cost
- Data center and cloud in one report
Before the next order
Use the GPUs you own before buying more
Idle owned GPUs, and allocated GPUs running at low utilization, are capacity you have already paid for. MIG and time-slicing proposals on owned servers report the GPUs they would free at your rate card, so capacity planning starts from what is free, not from the queue of requests.
- Idle and under-used owned GPUs per rack and pool
- GPUs freed by sharing, priced at the rate card
- Cloud and owned GPU-hour rates side by side
Self-hosted
Runs inside the data center it measures
A self-hosted KubeOn hub runs on your own Kubernetes cluster, with images from your registry. It needs no cloud billing export and no outbound internet access: rate cards replace the bill, and every snapshot stays in your network.
- Helm chart for any conformant cluster
- Images mirrored to your registry
- No data leaves your network
kubectl create namespace kubeon-hubkubectl -n kubeon-hub create secret generic kubeon-hub-secrets \ --from-literal=DATABASE_URL="postgresql://kubeon:<password>@postgres.internal:5432/kubeon" \ --from-literal=JWT_SECRET="$(openssl rand -base64 48)"helm upgrade --install kubeon-hub kubeon/kubeon \ --namespace kubeon-hub \ --set mode=hub \ --set secrets.existingSecret=kubeon-hub-secrets \ --set ingress.enabled=true \ --set ingress.host=kubeon.example.com \ --set autoscaling.api.maxReplicas=6What goes into a GPU-hour
Four inputs to an owned GPU's price
| Input | How it becomes a monthly cost | Where it comes from |
|---|---|---|
| Hardware | Purchase price divided by the depreciation period in months | Finance's asset register |
| Power | Average IT power in kW x facility overhead (PUE) x hours x price per kWh | Facilities, or a measured PUE |
| Space | Rack or floor cost for the server's share of the rack | Colocation contract or facilities |
| Support and software | Hardware support, operating system and GPU software licences | Vendor contracts |
Uptime Institute's 2024 survey put the average data center PUE at 1.56: total facility power about 56% above the IT load. See pricing Kubernetes in your own data center on the blog.
Capabilities
Owned GPU capacity with a price
GPU-hour rate cards
Unit rates or amortized hardware, effective-dated.
Rack and pool matching
Rates applied by node pool or label.
Team allocation
Owned GPUs split by request, like cloud ones.
Idle owned GPUs
Unrequested capacity with its monthly cost.
Cloud comparison
Owned and cloud GPU-hours on one basis.
Air-gapped hub
Self-hosted, with no outbound access needed.
FAQ
GPU data centers, answered
From you and your finance team: a unit rate per GPU-hour, or purchase price over the depreciation period plus monthly power, space and support. KubeOn applies it; it does not guess it.
Related
Evaluate GPU data centers with your team.
Bring your platform and FinOps priorities. We will walk through the data, controls and evidence for your evaluation.