Vanilla / custom image¶
If you prefer full control of the software stack (your own drivers, scheduler, and container runtime), you can deploy a vanilla Ubuntu 24.04 image (or other custom image) on an Instant Cluster. The cluster provides the same hardware that you receive from the managed Kubernetes or Slinky clusters: login node, service node, and worker nodes wired together over InfiniBand. You need to manually set up the operating environment: Internet access, shared filesystems, NVIDIA GPU drivers, CUDA, and NVIDIA networking drivers. This guide explains how to configure them.
Info
At this time, only the Ubuntu 24.04 minimal image is available. For other Ubuntu versions, get in touch with our support.
Info
On a vanilla image the only account is root. There is no ubuntu user.
Log in to the login node with ssh root@CLUSTER_IP (using the command from
the Clusters screen).
What you set up yourself¶
- Internet access for the worker and service nodes, only the login node has a public IP. The other nodes route through it, so the login node has to act as a NAT gateway.
- The shared filesystem, the SFS is exposed to every node over virtiofs
(tag
home) but is not mounted until you add it to/etc/fstab. - NVIDIA GPU drivers and NVIDIA networking (DOCA / OFED) drivers, needed for the GPUs and InfiniBand fabric to be usable.
Info
The cluster reaches running status in under ~7 minutes, at which point the login node and service node are up. The worker nodes take a few minutes longer to finish booting. Please wait a few additional minutes before you log in to them.
1. Give the worker and service nodes Internet access¶
The worker and service nodes have no public IP; their default route points at
the login node over the internal cluster network (eth1 on the login node,
eth0 on the other nodes). Since the worker and service nodes need to
install packages or download drivers from the Internet, you must configure traffic
forwarding and masquerading on the login node before proceeding.
Run this on the login node:
# Find your internal cluster subnet (the eth1 address, e.g. 10.13.118.100/24)
ip -4 addr show eth1
# Enable IPv4 forwarding (persist across reboots)
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-cluster-nat.conf
sudo sysctl -w net.ipv4.ip_forward=1
# Masquerade cluster traffic out of the public interface.
# Replace 10.13.118.0/24 with your internal subnet from the command above.
sudo iptables -t nat -A POSTROUTING -s 10.13.118.0/24 -o eth0 -j MASQUERADE
# The internal network uses jumbo frames (MTU 9000) while the uplink is MTU 1500.
# Clamp the TCP MSS so large responses don't stall on PMTU discovery.
sudo iptables -t mangle -A FORWARD -o eth0 -p tcp --tcp-flags SYN,RST SYN \
-j TCPMSS --clamp-mss-to-pmtu
Verify from a worker or service node:
On the login node, find the internal IP address of a service or worker node:
# IP of the first worker node typically ends with 101,
# IP of the last worker node typically ends with #TOTAL_WORKER_NODES + 100
# IP of a service node typically ends with 200
ip neighbor show dev eth1
From your workstation, connect to a worker or service node through the login node:
Info
Alternatively, you can configure direct SSH authentication from the login node by generating a dedicated SSH key pair on it and authorizing the public key on the service and worker nodes. This configuration is outside the scope of this guide.
Info
iptables rules are not persistent by default. Re-run them after a reboot,
or install iptables-persistent (sudo apt-get install iptables-persistent)
to save and restore them automatically.
2. Mount the shared filesystem¶
Your shared filesystem
is attached to every node over virtiofs with the tag home, but it is not mounted on a vanilla
image. Add it to /etc/fstab on every node (login node,
service node, and each worker):
echo 'home /home virtiofs defaults 0 0' | sudo tee -a /etc/fstab
sudo systemctl daemon-reload
sudo mount /home
Confirm it is mounted:
3. Install the NVIDIA GPU drivers¶
Install the data center GPU driver, CUDA toolkit, and Fabric Manager on every worker node. Please follow the official guide:
- NVIDIA Driver Installation Guide for Ubuntu
- CUDA Downloads (Linux → x86_64 → Ubuntu → 24.04 → deb (network)). We recommend CUDA 13.0.
Once installed and rebooted, verify with nvidia-smi.
4. Install the NVIDIA networking (DOCA / OFED) drivers¶
The InfiniBand fabric needs the NVIDIA networking drivers (the doca-ofed
package, formerly MLNX_OFED), which include the drivers, tools, and libraries.
The NVIDIA DOCA download page (DOCA-Host → Linux → x86_64 → doca-ofed → Ubuntu → 24.04 → deb (online))
generates the exact repository commands for Ubuntu 24.04:
Install on every worker node, reboot, and verify the InfiniBand ports with
ibstat. You should see eight ports, all Active at NDR (or faster).
Info
If both CUDA and DOCA repositories are enabled,
installing doca-ofed may fail with an mft dependency error:
The following packages have unmet dependencies:
doca-ofed : Depends: mft (>= 4.36.0-147) but 4.35.0.159-1 is to be installed
Depends: doca-sosreport (= 4.9.0-6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
mft and doca-ofed versions when installing:
Tip
To configure multiple workers efficiently, run the setup in a loop from
your workstation after completing step 1. For example, for 16 workers:
for n in $(seq 101 116); do ssh -J root@CLUSTER_IP [email protected].$n 'sudo ...'; done.
Replace 10.13.118 with the first three octets of your cluster’s internal IP. Alternatively,
use a configuration management tool such as Ansible.