Bootstrap / DIYNVIDIAAMD

Upstream Kubernetes (kubeadm)

CNCF / DIY

Vanilla Kubernetes bootstrapped with kubeadm. Maximum control and portability; you own drivers, runtime, CNI, and the GPU Operator lifecycle.

Bootstrap with Upstream Kubernetes (kubeadm)
Enablement

NVIDIA GPU Operator / AMD GPU Operator + device plugin

Driver install

GPU Operator (recommended) or manual host driver + NVIDIA container toolkit.

Container runtime

containerd or CRI-O; configure the NVIDIA runtime as default.

Scheduling

Default scheduler; add Kueue/Volcano/YuniKorn for gang/batch scheduling.

Partitioning

MIG, time-slicing, MPS — all via the operator or manual device-plugin config.

Networking

Your choice of CNI (Cilium/Calico); Multus + SR-IOV/RDMA for training.

Upgrades

You own kubeadm upgrades and operator re-validation.

GPU enablement
  1. 1

    Ensure the NVIDIA container toolkit path

    Either the operator installs it, or install on hosts and set containerd's default runtime.

  2. 2

    Install the GPU Operator

    Handles drivers, toolkit, device plugin, and DCGM.

    bash
    helm repo add nvidia https://helm.ngc.nvidia.com/nvidia
    helm repo update
    helm install --wait gpu-operator nvidia/gpu-operator \
      -n gpu-operator --create-namespace
  3. 3

    Add a batch scheduler (optional)

    Install Kueue or Volcano for queued, gang-scheduled training jobs.

Validate the enablement
verify GPUs
kubectl get nodes -o custom-columns=NAME:.metadata.name,GPU:.status.allocatable.'nvidia\.com/gpu'
kubectl -n gpu-operator get pods
kubectl run cuda-check --rm -it --restart=Never \
  --image=nvidia/cuda:12.4.1-base-ubuntu22.04 \
  --limits=nvidia.com/gpu=1 -- nvidia-smi
Known limitations
  • ·You own the full lifecycle — no managed backstop.
  • ·Kernel/driver mismatches are the most common failure; keep them pinned.
Best for

Teams needing full control, custom hardware, or a portable reference build.