Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › AI infrastructure

Your GPUs Are Lying to You: The Brutal Economics of AI on Kubernetes

By Freedom251 Team · · 9 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A Kubernetes dashboard that shows every GPU on a node as allocated is accurate, and it still cannot tell you whether those GPUs produced anything useful. The “lying” in the headline is a measurement problem, not a fault in the tools. Kubernetes records which devices a Pod asked for and where it placed them. Utilization, queue delay, interference between workloads and cost per output each need a separate measurement, and each uses a different denominator. Most arguments about AI infrastructure spend start when one of those numbers is quietly read as another.

What Kubernetes actually counts

Kubernetes includes stable support for GPUs through device plugins. The official scheduling documentation says: “Kubernetes includes stable support for managing AMD and NVIDIA GPUs (graphical processing units) across different nodes in your cluster, using device plugins.” GPU scheduling support has been stable since Kubernetes v1.26 (Kubernetes, “Schedule GPUs”).

As an Amazon Associate I earn from qualifying purchases.

A workload requests a GPU the way it requests CPU or memory, by declaring a resource in its Pod spec. For NVIDIA devices the resource name is nvidia.com/gpu:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
resources:
  limits:
    nvidia.com/gpu: 1

That line is a placement instruction. The scheduler uses it to find a node with a free device and reserves that device for the Pod. It does not measure what the Pod does with the device once it runs. Two Pods can carry identical lines and generate very different GPU activity, while the Kubernetes object looks the same for both.

#1 Best Overall
Sale
ASUS Dual Radeon RX 9060 XT 16GB GDDR6 Gaming Graphics Card | PCIe 5.0, HDMI 2.1b, DisplayPort 2.1a, 2.5-slot design, Axial-tech Fans, 0dB Technology
  • Axial-tech fans now feature a smaller fan hub that facilitates longer blades and a barrier ring that increases downward air pressure
  • 2.5-slot design allows for greater build compatibility while maintaining cooling performance
  • 0dB technology lets you enjoy light gaming in relative silence
  • Dual BIOS switch lets you toggle between Quiet and Performance BIOS profiles
  • Dual ball fan bearings last up to twice as long as sleeve bearing designs

The reservation side is visible with kubectl describe node <node-name>, which shows the total resource requests and limits claimed by Pods on that node. Read that output as a reservation ledger. It answers how much of the node is spoken for, not how hard the hardware worked.

Five measurements that are not interchangeable

Teams often use “GPU utilization” to mean any of the following. Each answers a different question, and none of them answers the cost question on its own.

Measurement Where it comes from What it answers What it does not answer
Requested or allocated GPUs Pod resource requests scheduled by Kubernetes How much capacity is reserved for a workload Whether the reserved device did any work
GPU memory assigned Device memory reserved for a workload or replica Whether the model and its working set fit How busy the compute units were
Device busy percentage Device telemetry sampled over a time window Whether the accelerator was active during the sample How many useful outputs completed, or which workload used that time
Allocated GPU-hours Cost allocation over time Reserved time to charge against an owner or budget Whether that reserved time was productive
Completed output Application metrics such as training steps, successful requests or generated tokens Useful work per period What the hardware cost, unless joined to cost data

A cost argument becomes unreliable when one row is used to justify a conclusion that only another row can support. A high allocation figure with a low busy figure suggests idle reservation, but it does not show which team or job caused it, and it does not show whether the work that ran was worth its cost.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Three cost denominators and why they disagree

The same GPU node produces three different unit costs depending on what you divide by. None of them is wrong. Each supports a different decision.

Rank #2
GIGABYTE GeForce RTX 5070 Ti Gaming OC 16G Graphics Card, 16GB 256-bit GDDR7, PCIe 5.0, WINDFORCE Cooling System, GV-N507TGAMING OC-16GD Video Card
  • Powered by the NVIDIA Blackwell architecture and DLSS 4
  • Powered by GeForce RTX 5070 Ti
  • Integrated with 16GB GDDR7 256bit memory interface
  • PCIe 5.0
  • WINDFORCE cooling system

Cost per provisioned GPU-hour

Total cost of GPU capacity over a period, divided by the GPU-hours that capacity was provisioned. Use it for procurement, capacity planning and fleet-level utilization. It charges idle reservation to the asset, so a GPU that sits empty still carries its full hourly cost.

Cost allocated to a workload

The share of cost assigned to a team, namespace or job under an allocation rule. Use it for showback, chargeback or team budgets. The result depends on the rule and on the ownership labels attached to Pods. Two teams that apply different rules to the same node will report different costs, and both can be internally consistent.

Cost per useful output

Total relevant cost divided by a defined output: completed training steps, successful inference requests, generated tokens, or another unit your product measures. This is often the most decision-relevant figure, but it needs application-level metrics and an explicit rule for retries, warm-up time, failed work and shared serving overhead. A failed request that consumed GPU time belongs in the cost, and it does not belong in the output count.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A hypothetical makes the gap concrete. Suppose a GPU carries an hourly cost of R and is provisioned for 24 hours, but it produces useful output during only 6 of them. Cost per provisioned GPU-hour is R. Cost per productive GPU-hour is 24R ÷ 6 = 4R. Neither figure is a measured result, and R stands in for whatever your provider charges in your region under your billing basis.

Rank #3
GIGABYTE GeForce RTX 5060 WINDFORCE OC 8G Graphics Card, Cooling System, 8GB 128-bit GDDR7, PCIe 5.0, Manufactured by NVIDIA, DisplayPort & HDMI - Video Output Interface, GV-N5060WF2OC-8GD Video Card
  • Powered by the NVIDIA Blackwell architecture and DLSS 4
  • Powered by GeForce RTX 5060
  • Integrated with 8GB GDDR7 128bit memory interface
  • PCIe 5.0
  • WINDFORCE cooling system

How sharing changes safety, density and measurement

Sharing is the lever most teams reach for when utilization looks low. The three modes below make different trade-offs, and the differences matter more than the headline density number.

Mode Isolation Density Monitoring Fit
Exclusive device assignment Isolation at device allocation level One workload per device; capacity can sit unused when workloads are small or bursty Not stated in the cited Kubernetes scheduling page Workloads that keep a whole device busy
GPU time-slicing No memory or fault isolation between replicas Oversubscribed; workloads interleave on one device DCGM-Exporter cannot associate metrics to containers when time-slicing is enabled with the NVIDIA Kubernetes Device Plugin Workloads that can tolerate shared memory and shared faults
Multi-Instance GPU (MIG) Hardware memory and fault isolation on supported GPUs Predefined instance shapes; less flexible density Not stated in the cited NVIDIA sharing page Workloads that need hard isolation and fit a predefined shape

The isolation and density characteristics above come from NVIDIA’s GPU sharing documentation (NVIDIA, “Time-Slicing GPUs in Kubernetes” and related GPU sharing pages), and they describe how the mechanisms behave, not how much money any of them saves.

Time-slicing: density without isolation

NVIDIA’s documentation puts the core trade-off plainly: “Unlike Multi-Instance GPU, there is no memory or fault-isolation between replicas, but for some workloads this is better than not being able to share at all.” Source: NVIDIA, “Time-Slicing GPUs in Kubernetes.”

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The counting trap is that requesting multiple time-sliced replicas does not guarantee proportionally more compute. The replicas are processes sharing the same underlying GPU. Asking for four replicas gives you four scheduling slots on one device, not four devices’ worth of throughput. Whether a shared device serves your workloads well has to be measured on those workloads.

Rank #4
Sale
GIGABYTE Radeon RX 9070 XT Gaming OC 16G Graphics Card, PCIe 5.0, 16GB GDDR6, GV-R9070XTGAMING OC-16GD Video Card
  • Powered by Radeon RX 9070 XT
  • WINDFORCE Cooling System
  • Hawk Fan
  • Server-grade Thermal Conductive Gel
  • RGB Lighting

MIG: isolation with fixed shapes

MIG splits supported GPUs into predefined instances with hardware-level memory and fault isolation. Planning it requires four checks: whether your GPU model is supported, which instance shapes it offers, how much memory each workload needs, and how the layout will pack over time. Packing is the easy part to miss. A partition layout that fits today’s jobs can strand capacity when tomorrow’s job needs a shape that no remaining slice provides.

Why utilization looks low on a shared cluster

Low numbers usually have several causes, and each points to a different fix. Check these in order before changing the sharing mode:

  • Whole-device requests for small work. An exclusive assignment reserves a full device for a Pod that may use only part of it. NVIDIA lists low-batch inference, interactive notebooks, bursty rendering and CI among workloads that may benefit from sharing (NVIDIA utilization blog). The word to notice is “may.”
  • Metrics at the wrong granularity. Under time-slicing, container-level numbers can mislead, as the monitoring column in the table above explains. Read the device-level figure before you assign blame to a team.
  • Work waiting for admission. A GPU can sit idle while jobs queue behind quota or scheduling. Record queue delay as its own metric rather than folding it into utilization.
  • Warm-up and data supply. Model loading, warm-up and data pipelines can leave an allocated device waiting. Measure them separately from steady-state compute.

Quotas make scarce GPUs governable, not cheaper

Quota decides who may take a scarce device and when. It does not create compute, and it does not guarantee savings. Kueue, a job-queueing controller for Kubernetes, documents charging GPU types against relative resource credits and using those credits to approximate monetary budgets. Its examples show configuration patterns, not current prices.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Approach What counts Version and maturity notes
Count-based quota Whole GPUs by count Not stated in the cited sources
Relative credits per GPU type (Kueue quota example) Credits weighted by GPU type, used to approximate budgets Example from the Kueue v0.19 documentation (Kueue quota example); a configuration pattern, not a price list
Dynamic Resource Allocation (DRA) accounting Device count, device counters or consumable capacity, depending on the device and configuration Requires Kubernetes 1.34 or later per the Kueue documentation; some topology and device-feasibility behavior is alpha and feature-gated in Kueue v0.20 (Kueue DRA documentation)

Before you enable DRA-based accounting, run kubectl version against the target cluster and confirm the server version is 1.34 or later. Then confirm the deployed Kueue release, because the feature-gate status described above is tied to specific releases. The documentation I checked is dated 7 October 2026, and it will drift.

Best Value
ASUS PRIME Radeon RX 9070 XT 16GB GDDR6 OC Edition Gaming Graphics Card | PCIe 5.0, HDMI/DP 2.1, 2.5-slot, Axial-tech Fans, Dual-ball Fan Bearings, dual BIOS, ASUS GPU Guard
  • Axial-tech fans now feature a smaller fan hub that facilitates longer blades and a barrier ring that increases downward air pressure
  • Phase-change GPU thermal pad helps ensure optimal heat transfer, lowering GPU temperatures for enhanced performance and reliability
  • 2.5-slot design allows for greater build compatibility while maintaining cooling performance
  • Dual-ball fan bearings last up to twice as long as standard conventional sleeve bearings designs
  • 0dB technology lets you enjoy light gaming in relative silence
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Allocation with OpenCost, and why it is not the invoice

OpenCost is an open-source Kubernetes cost monitoring project. Its specification defines the accounting structure: an asset’s cost is the sum of its resource allocation and usage costs, cluster totals also include overhead, and costs split into workload costs and idle costs. For resources billed by allocation, the workload-level model uses the greater of requested and used resources. The specification recommends GPU usage metrics from chipset-specific sources (OpenCost specification). This gives you a consistent internal model. It is a documented allocation rule, not a physical law and not a reproduction of every provider’s invoice.

Cloud pricing enters through two channels, and they play different roles. On-demand price data is a list price. Billing integrations bring in actual charges, but billing data may take several hours to 24 hours to appear, and OpenCost’s configuration documentation states that it does not reconcile on-demand pricing with actual billing costs (OpenCost configuration). Treat a list-price estimate as an estimate until a billing export confirms it.

To reconcile before you claim a saving:

  1. Export billing line items for the same account, region and date range as your OpenCost report, and wait until the most recent day has landed in the billing data.
  2. Compare the estimate with billed totals by GPU node pool, not only at cluster level.
  3. Apply negotiated discounts and committed-use terms that the on-demand price does not reflect.
  4. Record how idle time, overhead and shared-node costs were allocated, and keep that rule fixed between periods.
  5. Only then compare cost per useful output across periods.

Where the tools fit

Place each tool against the problem it solves, and treat vendor claims as claims.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • OpenCost handles allocation, idle-cost reporting and showback for Kubernetes workloads.
  • Kueue handles admission, quota and queueing. Its DRA integration is version-gated as described above.
  • NVIDIA GPU Operator documentation covers time-slicing and MIG configuration on Kubernetes.
  • KAI Scheduler is an open-source scheduling solution that NVIDIA identifies in its portfolio.
  • NVIDIA Run:ai is NVIDIA’s enterprise orchestration product (NVIDIA Run:ai). Its capabilities and any performance claims are vendor claims. Verify them on your own workloads before you budget around them.

Managed Kubernetes and cloud GPU capacity changes which line items you see, but not the denominators. Provider, region, hardware, discounts and utilization all move the result, so attach a source and date to any price you publish.

Quick Recap

SaleBestseller No. 1
ASUS Dual Radeon RX 9060 XT 16GB GDDR6 Gaming Graphics Card | PCIe 5.0, HDMI 2.1b, DisplayPort 2.1a, 2.5-slot design, Axial-tech Fans, 0dB Technology
ASUS Dual Radeon RX 9060 XT 16GB GDDR6 Gaming Graphics Card | PCIe 5.0, HDMI 2.1b, DisplayPort 2.1a, 2.5-slot design, Axial-tech Fans, 0dB Technology
0dB technology lets you enjoy light gaming in relative silence; Dual BIOS switch lets you toggle between Quiet and Performance BIOS profiles
$529.00
Bestseller No. 2
GIGABYTE GeForce RTX 5070 Ti Gaming OC 16G Graphics Card, 16GB 256-bit GDDR7, PCIe 5.0, WINDFORCE Cooling System, GV-N507TGAMING OC-16GD Video Card
GIGABYTE GeForce RTX 5070 Ti Gaming OC 16G Graphics Card, 16GB 256-bit GDDR7, PCIe 5.0, WINDFORCE Cooling System, GV-N507TGAMING OC-16GD Video Card
Powered by the NVIDIA Blackwell architecture and DLSS 4; Powered by GeForce RTX 5070 Ti; Integrated with 16GB GDDR7 256bit memory interface
$1,249.99
Bestseller No. 3
GIGABYTE GeForce RTX 5060 WINDFORCE OC 8G Graphics Card, Cooling System, 8GB 128-bit GDDR7, PCIe 5.0, Manufactured by NVIDIA, DisplayPort & HDMI - Video Output Interface, GV-N5060WF2OC-8GD Video Card
GIGABYTE GeForce RTX 5060 WINDFORCE OC 8G Graphics Card, Cooling System, 8GB 128-bit GDDR7, PCIe 5.0, Manufactured by NVIDIA, DisplayPort & HDMI - Video Output Interface, GV-N5060WF2OC-8GD Video Card
Powered by the NVIDIA Blackwell architecture and DLSS 4; Powered by GeForce RTX 5060; Integrated with 8GB GDDR7 128bit memory interface
$495.99
SaleBestseller No. 4
GIGABYTE Radeon RX 9070 XT Gaming OC 16G Graphics Card, PCIe 5.0, 16GB GDDR6, GV-R9070XTGAMING OC-16GD Video Card
GIGABYTE Radeon RX 9070 XT Gaming OC 16G Graphics Card, PCIe 5.0, 16GB GDDR6, GV-R9070XTGAMING OC-16GD Video Card
Powered by Radeon RX 9070 XT; WINDFORCE Cooling System; Hawk Fan; Server-grade Thermal Conductive Gel
$900.00
Bestseller No. 5
ASUS PRIME Radeon RX 9070 XT 16GB GDDR6 OC Edition Gaming Graphics Card | PCIe 5.0, HDMI/DP 2.1, 2.5-slot, Axial-tech Fans, Dual-ball Fan Bearings, dual BIOS, ASUS GPU Guard
ASUS PRIME Radeon RX 9070 XT 16GB GDDR6 OC Edition Gaming Graphics Card | PCIe 5.0, HDMI/DP 2.1, 2.5-slot, Axial-tech Fans, Dual-ball Fan Bearings, dual BIOS, ASUS GPU Guard
0dB technology lets you enjoy light gaming in relative silence; Dual BIOS switch lets you toggle between Quiet and Performance BIOS profiles
$829.99

A measurement routine that holds up

  1. Define the output unit before you measure: a completed training step, a successful request, a generated token, or another unit your business recognizes.
  2. Capture requested GPUs by namespace and owner label from Pod specs, and label that figure as reservation.
  3. Read device-level utilization first, and keep queue delay and warm-up time as separate series.
  4. Compute all three denominators, and write down the allocation rule you used.
  5. Reconcile against billing before you claim savings.
  6. When you change the sharing mode, measure throughput, latency, memory pressure and interference on your own workloads before and after. Sharing can reduce cost per output for suitable workloads and can raise latency for others.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

AI infrastructurecloud costGPUGPU sharingKubernetesKueueMIGOpenCost

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.