Bootstrap / DIYNVIDIA

Kubespray

CNCF / DIY

Ansible-based production Kubernetes deployment across bare metal or VMs. GPU enablement is layered on with the GPU Operator after the cluster is up.

Bootstrap with Kubespray
Enablement

NVIDIA GPU Operator (post-install)

Driver install

GPU Operator; or bake drivers into node images via your provisioning pipeline.

Container runtime

containerd (Kubespray default).

Scheduling

Default scheduler; add batch schedulers as needed.

Partitioning

MIG/time-slicing via the operator.

Networking

Calico/Cilium via Kubespray; add Multus/SR-IOV for RDMA.

Upgrades

Kubespray playbooks for cluster upgrades; re-run operator validation after.

GPU enablement
  1. 1

    Deploy the cluster

    Run the Kubespray playbook against your inventory of bare-metal/VM hosts.

    bash
    ansible-playbook -i inventory/mycluster/hosts.yaml \
      --become cluster.yml
  2. 2

    Install the GPU Operator

    After the cluster is Ready.

    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

    Validate GPUs

    Confirm nvidia.com/gpu is allocatable on GPU nodes.

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
  • ·Provisioning is Ansible-heavy; GPU enablement is a separate post-step.
  • ·Node image driver strategy must be decided up front.
Best for

Repeatable bare-metal cluster builds with infrastructure-as-code provisioning.