GPU Scheduling in Kubernetes for AI Inference


Running AI inference at scale requires efficient GPU management. Kubernetes doesn’t natively understand GPUs well, but the ecosystem has solutions.

Device Plugins

The NVIDIA device plugin exposes GPUs as schedulable resources:

resources:
  limits:
    nvidia.com/gpu: 1

GPU Sharing Strategies

Full GPU allocation is wasteful for many inference workloads. Options:

  • Time-slicing: Multiple pods share a GPU with time-based scheduling
  • MIG (Multi-Instance GPU): Hardware partitioning on A100/H100 GPUs
  • vGPU: Virtual GPU with memory and compute isolation

Autoscaling GPU Workloads

  • Use KEDA with custom metrics (queue depth, request latency)
  • Karpenter for node-level autoscaling with GPU-aware provisioning
  • Pre-warm nodes to avoid cold start delays

Cost Optimization

  • Spot/preemptible instances for fault-tolerant inference
  • Bin-packing with topology-aware scheduling
  • Idle GPU detection and automated scale-down

GPUs are expensive β€” every percentage point of utilization improvement matters at scale.