All essays
InfrastructureINFRASTRUCTUREAPR 17, 2026

GPU Tenant Isolation: Scheduling Is Only One Layer

A practical isolation model for shared GPU clusters that separates allocation fairness from process, memory, network, storage, and data controls.

01

Allocation is not containment

A scheduler answers where a workload may run and whether a requested resource is available. It does not, by itself, determine what that workload can observe or disrupt after launch. A namespace quota can stop one tenant from claiming every advertised GPU, while the same tenant might still reach another namespace over the default pod network, mount an unsafe host path, or share a physical device fault domain. Treat allocation fairness and security isolation as separate control objectives.

This distinction is especially important with GPU time slicing. NVIDIA documents time slicing as multiplexing workloads on one underlying GPU and states that replicas do not have memory or fault isolation. A request for multiple time-sliced GPU replicas also does not promise a proportional compute share. Time slicing can improve utilization for trusted, cooperative workloads, but it must not appear in a threat model as a boundary between mutually distrustful tenants.

02

Record five boundaries for every tenant class

Start with a boundary register rather than a scheduler setting. For each tenant class, record quota, process, device memory, network, and data boundaries. Quota covers aggregate consumption and admission. Process isolation covers host namespaces, Linux capabilities, privilege escalation, and access to device files. Device memory and fault isolation cover whether another workload shares the same physical GPU context or failure domain. Network isolation covers east-west reachability and bandwidth contention. Data isolation covers volumes, object stores, caches, logs, and secrets.

The useful question is not whether the cluster is multi-tenant. It is which controls are enforced for a particular pair of tenants. Two teams under one administrator may accept shared nodes and time slicing. External customers processing confidential inputs may require separate nodes, dedicated devices or supported hardware partitioning, default-deny networking, distinct credentials, and storage encryption domains. Write that decision per service tier so an operator cannot silently weaken it while chasing utilization.

LayerControl to verifyWhat it does not prove
QuotaNamespace GPU, CPU, RAM and object limitsRuntime containment
ProcessRestricted pod policy, no host namespaces or host pathsGPU memory separation
DeviceDedicated GPU or supported MIG profileNetwork or storage isolation
NetworkDefault deny plus explicit ingress and egressBandwidth fairness unless separately enforced
DataTenant-scoped identity, volumes, caches and logsProcess isolation
03

Choose sharing mode from the trust boundary

Use whole-device assignment when a tenant needs exclusive device access but can share the host under a reviewed container boundary. Use MIG only on supported GPUs and profiles when its hardware-partitioned memory and fault isolation match the workload, while remembering that the host operating system, control plane, storage, and network remain shared. Use time slicing for utilization among workloads that are inside the same trust domain and can tolerate interference and shared failures.

A measurable admission rule makes this enforceable: if two workloads are controlled by different security principals and either handles non-public inputs, disallow time-sliced co-residency. If the agreed blast radius excludes cross-tenant GPU faults, require a dedicated GPU, a validated MIG arrangement, or separate nodes according to the platform threat model. ClusterBid can help match those measured isolation and capacity requirements to available infrastructure, but the service owner still must verify the provider's actual tenancy controls.

04

Worked example: review one shared node

Consider an illustrative node with four GPUs and two tenants. Team A is allowed two GPUs and Team B is allowed two. A correctly configured namespace quota prevents either team from admitting a third concurrent whole-GPU request. It does not prevent both namespaces from landing on the same node, and it says nothing about a privileged pod. Suppose the device plugin exposes eight time-sliced replicas per GPU. The scheduler now sees 32 allocatable replica resources, but the hardware has not gained 32 isolated memory domains.

Review the path in order. Confirm Team A cannot create privileged pods, use hostPID, use hostNetwork, add unapproved capabilities, or mount host paths. Confirm its pods receive only assigned device nodes. Test that default-deny policies block A-to-B pod connections and that DNS is explicitly allowed, using a network plugin that enforces Kubernetes NetworkPolicy. Use distinct storage identities and try a denied read against B's bucket and volume. Finally, inject a controlled application failure in an isolated staging environment and observe whether another time-sliced replica is affected. A failed check blocks shared placement regardless of quota correctness.

05

Diagnose interference without calling it a breach

When a tenant reports latency variance, first establish placement and physical sharing: pod, node, GPU UUID or MIG device, and concurrent processes. Next compare queue wait, GPU active time, memory use, copy-engine activity, host CPU throttling, storage latency, and network counters over the same interval. Then reproduce with the neighbor absent. A performance change is evidence of contention, not evidence that memory or data crossed a boundary. Keep the incident classifications separate.

Conversely, clean latency does not prove isolation. Validate negative permissions directly: rejected API actions, blocked network probes, denied volume mounts, inaccessible secrets, and absent host namespace access. NVIDIA notes that time-sliced metrics may not be attributable to containers through DCGM Exporter, an observability limitation that should affect the sharing decision. If accounting cannot identify the consumer, set conservative concurrency or move chargeable workloads to attributable device assignments.

06

Make isolation a release gate

Turn the boundary register into tests that run after changes to the device plugin, container runtime, network plugin, node image, or admission policy. The minimum gate should include quota exhaustion, an attempted privileged workload, cross-namespace ingress and egress probes, unauthorized storage reads, device enumeration from inside the container, and a controlled GPU process failure. Record expected denials and the exact policy version that produced them.

No single mechanism completes this model. Containers share a host kernel, MIG supports only defined hardware and profiles, dedicated GPUs may still share host and fabric resources, and separate clusters can still share identity or storage systems. Recheck controls when a tenant changes trust class or data sensitivity. The honest objective is bounded, documented risk. Scheduling is successful when it places work fairly. Tenant isolation is successful only when every required boundary has an owner, an enforcement point, and a repeatable negative test.

Filed under
GPU isolationmulti-tenancyKubernetesMIGnetwork security