GPU multi-tenancy on Kubernetes: MIG vs time-slicing vs vGPU vs dedicated · FusioNative
Skip to content

FusioNative. Cloud Management Software. Build AI, NEO, sovereign, or air-gapped clouds.

FusioNative

Learn

How does GPU multi-tenancy work on Kubernetes?

How to share GPUs between tenants on Kubernetes: hardware partitioning, time-slicing, vGPU and dedicated nodes, plus namespace, virtual cluster and cluster isolation.

Last updated · Fusionative

Short answer

GPU multi-tenancy on Kubernetes means letting several teams or customers share GPU capacity safely. It combines a GPU sharing method (whole GPUs, NVIDIA MIG partitions, time-slicing or vGPU) with a tenant isolation model (namespaces, virtual clusters or dedicated clusters), plus quotas and metering per tenant.

Ways to share a GPU

Whole-GPU allocation gives each workload full GPUs and the strongest isolation. NVIDIA Multi-Instance GPU (MIG) partitions supported data-center GPUs into isolated instances, up to seven, each with its own memory and compute. Time-slicing lets several pods take turns on one GPU without memory isolation, which suits development but not untrusted tenants. NVIDIA vGPU shares GPUs between virtual machines with a licensed driver.

Ways to isolate tenants

  • Namespaces with RBAC, network policies and resource quotas: cheapest, weakest isolation.
  • Virtual clusters: each tenant gets its own Kubernetes API on shared nodes.
  • Dedicated clusters or VMs per tenant: strongest isolation, highest overhead.

Quotas, fairness and metering

Sharing only works if usage is bounded and visible. Kubernetes ResourceQuotas cap GPU requests per namespace; queueing systems such as Kueue add fair sharing and borrowing. Metering per tenant, by GPU-hour or GPU partition, is what turns sharing into showback, chargeback or billing.

Where FusioNative fits

FusioNative provides the tenancy layer above Kubernetes: tenants and projects, quotas for GPUs by type, including slices and fractions, enforced as Kubernetes quotas, VMs that use passthrough, time-sliced, vGPU or MIG devices, and metering of GPU-hours by GPU model for invoices.

GPU sharing methods compared
MethodIsolationBest forTrade-off
Whole GPUStrongTraining, large inference, untrusted tenantsLow utilization for small jobs
MIG partitionsStrong (hardware)Many small inference workloads, multi-tenantSupported GPUs only, fixed profiles
Time-slicingWeak (no memory isolation)Development, trusted teamsNoisy neighbors, no hard limits
vGPUMedium to strongVirtual machines needing a GPU shareLicensed software, hypervisor required

FAQ

Frequently asked questions

Is time-slicing safe for multiple customers?

Generally no. Time-sliced workloads share GPU memory without isolation, so it is better suited to trusted internal teams. Use whole GPUs, MIG or VMs for separate customers.

How do I limit GPUs per team in Kubernetes?

Set ResourceQuotas on GPU resources such as nvidia.com/gpu per namespace, and use a queueing layer such as Kueue for fair sharing when demand exceeds supply.

How do I bill tenants for GPU use?

Meter allocated GPU time per tenant, per GPU type or partition, then apply a price book. A cloud-management layer can collect this across clusters and export it to billing.