AI infrastructure · GPU clusters · Kubernetes · Fabric · Observability · Automation
Read ten job descriptions for AI infrastructure roles across different companies and the same six things come up every time: run large GPU clusters, keep the fabric healthy, schedule GPU work on Kubernetes or Slurm, see everything in Prometheus and Grafana, automate it with Terraform and Ansible, and lead the customer through all of it. Most of us have solutioned those things. Fewer of us have typed the commands. This workbook is 100 lab tasks, in the order you would learn them, so you can.
FirstWhat these roles actually test
I built the list from the job descriptions themselves rather than from a course outline. Grouped, the requirements come to six areas, and every section below maps to one of them:
| What the job description says | What it means in practice | Sections |
|---|---|---|
| Infrastructure management and orchestration | Linux on GPU hosts, drivers, DCGM, Xid errors, Slurm, Kubernetes with the GPU Operator | B, C, D, E |
| Interconnect and network support | InfiniBand and RoCE link health, counters, topology validation, transceivers, NCCL as the proof | A, G, H |
| Observability | Prometheus, Grafana, Loki, the DCGM exporter, alerts that page versus alerts that ticket, SLOs | F |
| Automation and DevOps | Terraform, Ansible, CI/CD, GitOps, wave rollouts with health gates | I |
| GPU cluster lifecycle | Base Command Manager, images and categories, driver rollouts, storage and inference serving | J, K |
| Technical leadership | Runbooks, onboarding guides, post-incident reviews, executive updates, roadmap talks, and the scenario questions | L, M |
dcgmi diag, who has drawn a rail-optimised fabric but never read an ibdiagnet report. If that is you, the first forty tasks will feel slow and the last forty will feel like your job.SecondWhere to run the tasks
Every task is tagged with the cheapest environment that can run it. You do not need a GPU cluster, and you do not need a GPU for most of it.
| Tag | Environment | Tasks | Cost |
|---|---|---|---|
| P | Paper only. Drawing, writing and reading saved command output | 44 | Nothing |
| A | Your laptop: WSL2 or a VM, k3d, Docker, the free NVIDIA Air simulator, AWS free tier | 30 | Nothing |
| B | One rented GPU instance for a few hours, started from a bare image | 25 | A few GPU hours |
| C | Two GPU instances on one network, optional | 1 | One evening |
Do the B tasks in one sitting with the instance running, in order, and capture the output of every command as you go. Those captures are what you talk about in the interview.
ThirdWhy the order matters
The sections are in dependency order, not in order of interest. Section B prepares a Linux host so the driver install in section C succeeds. Section C gives you nvidia-smi and DCGM so the schedulers in D and E have something to hand out. Section F needs the DCGM exporter from E. Section H needs the fabric understanding from G to read its own output. Section I automates everything B to H did by hand, which only makes sense once you have done it by hand. Sections L and M turn all of it into the documents and the spoken answers the role is paid for. Skip ahead if you must, but the prerequisites table on each task will send you back.
Workbook100 tasks, in learning order
Section A is on paper. B to K are hands-on, with the environment tag in grey at the right. L is the documents. M is eight scenarios against the clock, the way they are asked.
Draw and write before touching a machine. Everything later refers back to these pages.
- 1Draw an 8-GPU HGX node from memory: GPUs, NVSwitch, two CPU sockets, PCIe switches, NICs and local NVMe. Mark which NIC serves which GPU.P›
- 2Draw a rail-optimised InfiniBand fabric for 32 nodes: one leaf per rail, a spine layer, and the path two GPUs on different nodes take to each other.P›
- 3Write the software stack of a GPU node from the bottom up: firmware, kernel, driver, CUDA, NCCL, container runtime, scheduler agent, exporters.P›
- 4Write how an NCCL all-reduce uses NVLink inside a node and the fabric between nodes, and why one slow link caps the whole job.P›
- 5Write an acceptance plan for a new GPU cluster, layer by layer, naming the tool and the pass criterion at each layer.P›
- 6Write a one-line vocabulary sheet: Slurm, BCM, GPU Operator, Network Operator, UFM, DCGM, NCCL, GPUDirect RDMA, Kueue.P›
A plain VM is enough. Every item here is a prerequisite the driver install will fail without.
- 7Build a RHEL 9 or Ubuntu 22.04 VM and apply the GPU host pre-checks: nouveau blacklisted, kernel headers present, IOMMU and hugepages set in GRUB.A›
- 8Inspect NUMA and PCIe locality with
lscpu,numactl -Handlstopo, and write which CPU socket each PCIe slot belongs to.A› - 9Harden SSH: keys only, no root login, sudo with logging. Prove it with a failed password attempt in the log.A›
- 10Leave SELinux or AppArmor enforcing and show a confined service still runs. Record how you read a denial.A›
- 11Run a CIS benchmark check with OpenSCAP and fix five findings without breaking the GPU prerequisites.A›
- 12Pin the kernel and disable unattended kernel upgrades. Write why a surprise kernel breaks a GPU node.A›
- 13Ship auditd and journal logs off the node with Grafana Alloy or rsyslog to a collector.A›
- 14Write the DOCA-OFED install procedure for the kernel you pinned and keep it as a runbook.A›
One rented GPU instance for a few hours. Start from a bare image so you see every step.
- 15From a bare image, install the NVIDIA driver and CUDA toolkit by hand. Verify with
nvidia-smiandnvcc --version.B› - 16Install the NVIDIA container toolkit and run a CUDA container. Then run one with a mismatched CUDA image and read the error.B›
- 17Read
nvidia-smi -qend to end and record driver, VBIOS, ECC mode, persistence mode, clocks and power limits.B› - 18Run
nvidia-smi topo -mand explain every cell of the matrix: NV#, PIX, PHB, SYS.B› - 19Enable MIG on an A100 or H100, create two instances, run a job on each, then disable MIG.B›
- 20Enable persistence mode as a systemd service and set a power cap. Confirm both survive a reboot.B›
- 21Install DCGM and run
dcgmi discovery,dcgmi health -c,dcgmi diag -r 1and then-r 2. Record the run times.B› - 22Read ECC and row-remapper state with
nvidia-smi -q -d ECC,ROW_REMAPPERand write the drain rule for each state.B› - 23Grep
dmesgfor Xid lines, map the common Xids to actions from the NVIDIA catalogue, and write a one-page Xid card.B›
The HPC scheduler most GPU clusters run. Containers on the laptop first, then the real GPU.
- 24Bring up slurm-docker-cluster with two compute nodes and confirm
sinfoshows both idle.A› - 25Submit jobs with
sbatchandsrun; hold, release and cancel one; read thesqueuereason for a pending job.A› - 26Drain a node with a reason, watch what happens to its running job, resume it, and read
sinfo -R.A› - 27Create two partitions with different time limits and a QoS, and submit a job to each.A›
- 28Declare fake GPUs in
gres.conf, submit with--gres=gpu:2, then ask for more GPUs than exist.A› - 29Enable accounting and read
sacctfor a finished job: elapsed time, CPU, memory and exit code.A› - 30On the GPU node, install single-node Slurm with the real GPU in
gres.conf; run--gres=gpu:1and check confinement withnvidia-smiinside the job.B› - 31Write how a container job runs on Slurm with Pyxis and enroot, and when you would pick Slurm over Kubernetes for training.P›
The GPU Operator on a real GPU, scheduling rules on the laptop.
- 32Install k3s on the GPU node and Helm-install the NVIDIA GPU Operator.B›
- 33Confirm the device plugin advertises
nvidia.com/gpuand read the labels GPU Feature Discovery added to the node.B› - 34Run a CUDA pod that requests one GPU, then a second that cannot be scheduled, and read its Pending reason.B›
- 35Enable time-slicing and run two pods on one GPU. Then write when MIG is the better choice.B›
- 36Switch the Operator to the MIG strategy and expose MIG slices as schedulable resources.B›
- 37Deploy the DCGM exporter through the Operator and curl its metrics endpoint.B›
- 38On the laptop k3d cluster, taint a node and schedule a pod with a toleration. Write how GPU nodes are kept for GPU jobs.A›
- 39Install Kueue on k3d, create a ClusterQueue with a quota, and watch a job wait for quota and then run.A›
- 40Write how the Network Operator gives pods RDMA access (device plugin, Multus, SR-IOV) and the pod spec lines it needs.P›
- 41Write the difference between the driver container and a host-installed driver, and when each is used.P›
Prometheus, Grafana and Loki on the laptop, then pointed at the GPU node.
- 42Helm-install kube-prometheus-stack on k3d and open Prometheus and Grafana.A›
- 43Write three alert rules (node down, disk over 85 percent, pod crash-looping) and route them through Alertmanager.A›
- 44Install Loki and Alloy, and run a LogQL query that finds a kubelet error.A›
- 45Import Grafana dashboard 12239, the DCGM exporter dashboard, and study every panel.A›
- 46Scrape the DCGM exporter on the GPU node from Prometheus and light up the dashboard under a training load.B›
- 47Add an alert on Xid count and one on GPU temperature. Fire the temperature one by lowering its threshold.B›
- 48Ship the GPU node kernel log to Loki and run the Xid-per-node LogQL query.B›
- 49Design the monitoring for a 64-node GPU cluster: metrics, logs, dashboards, and which alerts page versus ticket.P›
- 50Write an SLO and a burn-rate alert for job success and for throughput against the NCCL baseline.P›
RoCE in the free NVIDIA Air simulator; InfiniBand from saved command output, because no laptop has an HCA.
- 51In NVIDIA Air, build a two-leaf, one-spine Cumulus Linux fabric and bring every link up.A›
- 52Configure PFC and ECN for RoCE on the Air fabric and verify with the switch counters.A›
- 53Shut a port, bring it back, and read the link-flap evidence in the switch log and counters.A›
- 54Read saved
ibstat,ibstatusandiblinkinfooutput and find the one port trained at a lower speed or width.P› - 55Read a saved
ibdiagnetreport and list every port with rising symbol errors or link-downed counts.P› - 56Compare an
ibnetdiscovertopology file against a cabling plan and find the cable in the wrong leaf.P› - 57Read transceiver DOM data (temperature, Tx and Rx power) and decide which end of a link is faulty.P›
- 58Write the counter sheet: SymbolError, LinkErrorRecovery, LinkDowned, PortRcvErrors, PortXmitDiscards, pause and ECN counters, with meaning and action.P›
- 59Write the link-flap runbook: confirm from both ends, protect workloads, physical first, swap one part at a time, close out.P›
The number every later complaint is compared against.
- 60Build nccl-tests on the GPU node and run
all_reduce_perfacross the GPUs or MIG slices.B› - 61Record the bus bandwidth as a baseline and compare it with the NVLink or PCIe figure for the system.B›
- 62Run with
NCCL_DEBUG=INFOand identify the transport and the NVLink or NIC path NCCL chose.B› - 63On two instances, run
all_reduce_perfacross nodes withNCCL_SOCKET_IFNAMEset, and note the drop.C› - 64Write the bisect method for a cluster-wide all-reduce that is 40 percent below baseline.P›
- 65Write a burn-in plan: DCGM diag level 3, HPL or a real training job, duration, and the pass criteria.P›
Everything through Git. The laptop is enough for all of it.
- 66Write a Terraform module that creates a k3d cluster or a set of Docker containers; plan, apply, change a variable, destroy.A›
- 67Create a VPC and one instance on AWS free tier with Terraform, with remote state and locking.A›
- 68Output an Ansible inventory from Terraform and run a playbook against it.A›
- 69Write an Ansible role for GPU host prep (section B) and prove it is idempotent with
--checkand a second run.A› - 70Put the Helm chart and playbooks in GitHub and add a GitHub Actions pipeline that lints and packages on every push.A›
- 71Install Argo CD on k3d and deploy the chart from Git. Change a value in Git and watch it sync.A›
- 72Roll back a bad release through Git and then through Argo CD. Write which you would use at 2 am.A›
- 73Write a wave rollout playbook for a driver upgrade across 64 nodes: canary, one rack, the rest, with health gates.P›
- 74Write how you stop a bad change reaching every node: review, CI, canary, gates, rollback.P›
No lab exists without licensed hardware, so this section is read and write. Say so in interviews.
- 75Read the BCM administrator manual chapters on head nodes, software images and node categories, and draw the provisioning flow.P›
- 76Write the
cmshcommands you would use to list nodes, change a category and reboot a node into a new image.P› - 77Write the driver rollout answer for 256 nodes with BCM: clone the image, canary category, waves, rollback.P›
- 78Compare BCM with MAAS, Warewulf and Metal3 in a one-page table.P›
- 79Design the images and categories for a 64-node cluster with two GPU types and a login node tier.P›
Where the data lives and how a model is served, the two questions every company asks.
- 80Run
fioon the GPU node local NVMe and on an NFS mount, and record read and write throughput.B› - 81Write the checkpoint pattern for a 70B-parameter model: size, frequency, where it lands, and the storage throughput it needs.P›
- 82Write what Lustre, GPFS, WEKA and VAST each give a GPU cluster, and when NFS over RDMA is enough.P›
- 83Serve a small model with vLLM on the GPU node and measure tokens per second at two batch sizes.B›
- 84Serve the same model with Triton or a NIM container and compare the metrics each exposes.B›
- 85Write an autoscaling design for inference on Kubernetes using GPU utilisation and queue depth.P›
The documents the job description names. Write them once, then reuse them in every interview.
- 86Write the GPU node replacement runbook: trigger, impact check, safe first actions, diagnosis, escalation, close-out.P›
- 87Write the InfiniBand link failure runbook in the same shape.P›
- 88Write a blameless post-incident review for a real or imagined outage: timeline, impact, causes, actions with owners.P›
- 89Write a one-page executive update with RAG status, top risks, open actions and a path to green.P›
- 90Prepare a ten-minute NVIDIA roadmap talk: current generation, the next two, networking, software.P›
- 91Write four STAR stories mapped to the job description: technical lead, Kubernetes platform, runbooks, automation.P›
- 92Write an onboarding guide for a new customer cluster: access, scheduler, storage, monitoring, who to call.P›
Ten minutes each, out loud, the way an interviewer will ask them.
- 93Timed, 10 minutes: a multi-node training job runs at half the expected speed. Diagnose aloud.P›
- 94Timed, 10 minutes: a node is NotReady and the kernel log shows Xid 79. Act and explain.P›
- 95Timed, 10 minutes: one InfiniBand link flaps every few minutes. Walk through it.P›
- 96Timed, 10 minutes: a pod that requests a GPU stays Pending.P›
- 97Timed, 10 minutes: InfiniBand or Spectrum-X for a new 128-GPU cluster. Recommend and defend.P›
- 98Timed, 15 minutes: design the monitoring for a 64-node cluster on a whiteboard.P›
- 99Timed, 10 minutes: NCCL inside pods is using TCP sockets instead of InfiniBand. Why, and the fix.P›
- 100Timed, 10 minutes: roll a new GPU driver to 256 nodes without a cluster-wide outage.P›
How to use itFour weeks, if that is what you have
| Week | Sections | Focus |
|---|---|---|
| 1 | A to D | Draw the node and the fabric, prepare Linux, install the driver and DCGM on a rented GPU, run Slurm |
| 2 | E to G | Kubernetes with the GPU Operator, the observability stack, the fabric in simulation and from reports |
| 3 | H to K | NCCL baseline, Terraform and Ansible, GitOps, BCM on paper, storage and serving |
| 4 | L and M | Write the runbooks and the review, then run the eight scenarios out loud, twice |
Work through it online: the interactive workbook. All 100 tasks with prerequisites, steps and a diagram for each one, searchable and filterable by section or environment, and it keeps your ticks.
More tools for infrastructure and AI work are on the tools page.
Commands and product names were checked against the vendor documentation in October 2026. NVIDIA, Kubernetes and the observability projects release often, so confirm a flag against the current documentation before you rely on it in front of a customer.






DrJha