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 KubesprayNVIDIA GPU Operator (post-install)
GPU Operator; or bake drivers into node images via your provisioning pipeline.
containerd (Kubespray default).
Default scheduler; add batch schedulers as needed.
MIG/time-slicing via the operator.
Calico/Cilium via Kubespray; add Multus/SR-IOV for RDMA.
Kubespray playbooks for cluster upgrades; re-run operator validation after.
- 1
Deploy the cluster
Run the Kubespray playbook against your inventory of bare-metal/VM hosts.
bashansible-playbook -i inventory/mycluster/hosts.yaml \ --become cluster.yml - 2
Install the GPU Operator
After the cluster is Ready.
bashhelm 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
Validate GPUs
Confirm nvidia.com/gpu is allocatable on GPU nodes.
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- ·Provisioning is Ansible-heavy; GPU enablement is a separate post-step.
- ·Node image driver strategy must be decided up front.
Repeatable bare-metal cluster builds with infrastructure-as-code provisioning.