Skip to main content

Spin up your first GPU cluster

Provision your first multi-node GPU cluster using Crusoe Managed Kubernetes (CMK) or Slurm. When your cluster is up, you can use it to train models, serve inference, and run data processing pipelines.

Select an orchestration path:

Crusoe Managed Kubernetes (CMK) gives you a Kubernetes control plane with GPU drivers, network operators, and storage add-ons preconfigured—so you can go from a fresh account to a distributed training job quickly.

Prerequisites

1. Create a cluster

You can create clusters using the kubernetes clusters create command. Use the -help flag for an exhaustive list of options.

crusoe kubernetes clusters create \
--name my-first-cluster \
--cluster-version 1.31 \
--location us-east1-a \
--subnet-id 6f8e2a1b-7b1d-4c8e-a9f2-8e3d6c1f2a0c
--add-ons "nvidia_gpu_operator,nvidia_network_operator,crusoe_csi"

You may list the Kubernetes versions available for cluster creation by using the 'kubernetes clusters list-versions' command. Specifying an unqualified version (e.g. 1.30) when creating a cluster will provision the latest stable patch version associated with the minor version.

2. Add a GPU node pool

Node pools hold the actual GPU workers. Attach one to your cluster.

Nodepools can be created by using the kubernetes nodepools create command. Nodepools must be created in the context of a specific cluster. Use the '--help' flag for an exhaustive list of options.

crusoe kubernetes nodepools create \
--name my-first-nodepool \
--cluster-id 6f8e2a1b-7b1d-4c8e-a9f2-8e3d6c1f2a0c \
--type h100-80gb-sxm-ib.8x \
--count 4 \
--ib-partition-id 4c8e2a1b-7b1d-4c8e-a9f2-8e3d6c1f2a0c \

3. Connect

Retrieve credentials for your cluster:

Use the kubernetes clusters get-credentials command to retrieve credentials for a specific cluster.

crusoe kubernetes clusters get-credentials <name/id>

By default, credentials are stored in a file named ~/.kube/config. You may alter the path credentials are stored at by using the --kubeconfig-path flag. If you have existing configs stored in the same path, the new cluster kubeconfig will be appended to the end and set as the current context.

Then confirm your nodes came up:

kubectl get nodes

All nodes should show STATUS: Ready within a couple of minutes. If a node stays NotReady, describe it with kubectl describe node <NAME>—usually the GPU operator is still installing drivers.

tip

Prefer to manage your cluster as code with Terraform? Use the Manage your CMK clusters and Manage your Node Pools guides.

Next steps

Decide how you want to use your cluster:

  • Train models—Run distributed training on B200 GPUs with InfiniBand interconnects, using frameworks like PyTorch DDP, NVIDIA NeMo, DeepSpeed, and Ray Train. Multi-node jobs scale across the cluster's IB fabric without additional configuration on your end.
  • Serve models—Run vLLM, NVIDIA Triton, or your own inference stack on hardware you control, colocated with your data and free from third-party rate limits. Autoscale replicas with the Cluster Autoscaler on CMK, or fix capacity with a dedicated Slurm partition.
  • Run data processing—Execute GPU-accelerated preprocessing, embedding generation, or synthetic data pipelines with RAPIDS, Ray Data, or Spark on GPU. Reuse the same cluster for training and preprocessing to keep data close to the compute.