Skip to content
NewKubeOn AI: a managed LLM gateway with cost per 1M tokens for every model
KubeOn docs
API referenceReleases

KubeOn GPU overview

The two parts of KubeOn GPU, what each capability needs, and the order to roll it out in.

On this page

Early access

KubeOn GPU is in early access for selected enterprise customers. To join, request early access and we will plan the rollout with you.

KubeOn GPU has two parts. The read-only agent you already run for KubeOn measures GPU capacity, requests, utilization and cost. The GPU optimizer is optional: a separate Helm release, installed only in clusters where you want GPU optimization, that acts through the policies you enable. Without the optimizer, every GPU finding is a proposal your pipeline applies.

What each capability needs

CapabilityNeedsChanges your cluster
GPU cost and idle GPU timeThe agent, and your billing export or a rate cardNo
GPU utilization and memoryThe NVIDIA DCGM exporter, scraped by Prometheus. See connect GPU metricsNo
Proposals for sharing, sizing and schedulesThe two rows aboveNo
GPU sharing: MIG and time-slicingThe GPU optimizer and the NVIDIA GPU OperatorYes, within a Sharing policy
GPU autoscaling, packing and spotThe GPU optimizer, and Karpenter or your cloud's managed node groupsYes, within an Autoscaling policy
Scale to zeroThe GPU optimizer and DCGM metricsYes, within a ScaleToZero policy
GPU burstThe GPU optimizer, credentials for each location, and the burst gateway. See set up GPU burstYes, within a Burst policy

Modes

ModeWhat happens
RecommendThe optimizer writes the change as a proposal with its evidence and patch. Your pipeline applies it, as with every other KubeOn saving. Every policy starts here.
ApproveEach change waits for a named reviewer. Once approved, the optimizer applies it in the policy's change window and records the outcome.
AutomaticThe optimizer acts on its own, but only on the node pools and namespaces the policy names, within its node, cost and time limits.

Recommend mode is in every edition. Approve and Automatic modes need the Optimize edition, which includes burst to other regions of the same cloud. Burst across clouds and into your own data centers needs Enterprise. See KubeOn GPU pricing.

Roll it out in this order

  1. Connect GPU metrics and let KubeOn collect at least 14 days of history, so peaks and idle periods are real.
  2. Review GPU cost, idle GPU time and the proposals for each GPU node pool with the teams that own them.
  3. Install the optimizer in one non-production cluster. Every policy starts in Recommend mode.
  4. Write the first policies with tight limits. Compare their proposals with what your team would have done.
  5. Move one policy at a time to Approve, then to Automatic, starting with scale to zero in development namespaces.
  6. Repeat for production node pools, and add burst last, once its locations and credentials are agreed.

Guardrails

  • Installed only in clusters you choose, as its own Helm release, separate from the read-only agent
  • Acts only on the node pools and namespaces a policy names; everything else is out of reach
  • Hard limits per policy: minimum and maximum nodes, monthly cost, GPU-hour price
  • Disruptive steps such as drains and repartitions run only in the policy's change window
  • Evicts through the Eviction API, so PodDisruptionBudgets are always respected
  • No access to Secrets or ConfigMaps outside the GPU Operator config it manages
  • Pulls policies and approvals from the hub over HTTPS; the hub never connects into your cluster
  • Every action in the audit log with the policy that allowed it, and a one-click revert where the change can be undone

Next: how the optimizer decides, with the rule behind every action.

Need help with this guide?Contact support