How-to: provision a multi-node homogeneous pod cluster with one command
This is a worked task. The reference page (rp doc cluster create) documents the
individual flags; this page shows them composed into a single provisioning call
and clears up what "homogeneous" and "required" mean in practice.
Goal: stand up N identical pods — one GPU type, one GPU count, one container
config — as a single named fleet with one rp cluster create call.
Why one command
A cluster is a single named, single-datacentre fleet of identical pods. The
--gpu, --gpu-count, and --pod-count flags are fleet-wide: every member
gets the same compute shape, so you describe the whole fleet, not each node.
RunPod provisions the nodes from a single request. Afterwards the name is the
only mutable field (rp cluster update is a rename); compute, type, and
container config are fixed at create.
Steps
- (Optional but recommended) Confirm the GPU type is in stock before you
commit to it.
rp cluster create --gputakes a single display name with no fallback list, so an out-of-stock type fails later rather than degrading gracefully.--min-countis per host, so match it to the per-node GPU count you plan to request:
$ rp stock gpu --product CLUSTER --min-count 8 --json
The id field (e.g. NVIDIA H100 80GB HBM3) is what you pass to
--gpu.
- Create the cluster. Only
--name,--type, and--gpuare mandatory;--pod-countdefaults to 2, so a 2-node cluster needs no extra count flag:
$ rp cluster create --name tr-1 --type TRAINING \
--gpu "NVIDIA H100 80GB HBM3" \
--pod-count 4 --gpu-count 8 \
--dc EU-RO-1 \
--network-volume-id vol_xyz --volume-path /runpod-volume \
--start-ssh true
--typemust beAPPLICATION,TRAINING,SLURM, orRAY.--gpu-countdefaults to 1;--pod-countmust be at least 2.--dcaccepts a comma-separated preferred list, but placement stays single-DC; omit it to let the scheduler choose.--network-volume-id+--volume-pathmount the same volume on every node;--volume-pathdefaults if omitted.-
--start-ssh/--start-jupyterenable the service on all members. -
Inspect the fleet once it is up. The
podsverb takes the cluster by id, so read the id fromrp cluster listfirst:
$ rp cluster list
$ rp cluster pods <cluster_id>
Notes
- Creation is idempotent by name: if a cluster of that name already exists, the
CLI prints its id and skips the POST. Pass
--forceto send the request regardless. - Clusters do not support private registries — there is no
--registryflag onrp cluster create. Use a public image or a network volume for your build. --template-idseeds container config defaults; any explicit flag still wins.- Because the fleet is homogeneous by construction, there is no per-node flag — you cannot mix GPU types or counts within one cluster.