> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nscale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Clusters

> This guide provides step-by-step instructions to help users create, manage, and monitor virtual machines within the Clusters. It covers how to select VM configurations, choose system images, connect to project-level networks, and perform lifecycle actions. The guide is designed to support new users in getting started quickly and using the Nscale platform effectively.

<Warning>
  **Compute clusters are deprecated.** The cluster API has been removed. Use [instances](/docs/compute/create-new-instances) to provision individual virtual machines or bare-metal nodes, or manage instances via the [CLI](/docs/cli/instances).
</Warning>

## Introduction

### **Cluster Service – Introduction**

The Cluster Service allows users to provision on-demand compute clusters composed of virtual machines or bare metal nodes. Designed for AI, ML, and general-purpose workloads, it provides a streamlined way to deploy and manage multiple instances through a unified UI and API. Networking, storage, and image management are abstracted and handled by the platform, so users can focus on running workloads without managing infrastructure complexity.

### **Benefits of the Cluster Service**

* **No networking complexity:** Instances are auto-connected within a shared project network.
* **Easy provisioning:** Minimal configuration via a single pane of glass covering compute, networking, and storage.
* **Use only what you need:** Fractional flavours reduce cost for inference, testing, and right-sized workloads.
* **Run GPU workloads out of the box:** Images suitable for GPU workloads are available and ready to use, or you can bring your own image.
* **Full control over lifecycle:** Start, stop, and delete instances without requiring orchestration tools.
* **OS-level access:** SSH into cluster nodes to configure and operate the system directly, using the credentials provided when the cluster is created.

## Architecture

This diagram illustrates two high-level deployment models for compute infrastructure:

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/image.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=5b877175c5be2582cff358f292a48c55" alt="image.png" title="image.png" className="mx-auto" style={{ width:"46%" }} width="562" height="291" data-path="images/image.png" />

* **Left Side: Virtualised Architecture**

  Compute resources are virtualised using a hypervisor running on top of a host OS. Virtual machines (VMs) are provisioned for CPU or GPU workloads. GPU VMs include a guest OS with CUDA support to enable accelerated computing.
* **Right Side: Bare-Metal Architecture**

  Applications run directly on the host OS without a virtualisation layer. CUDA is installed at the host level, providing direct access to GPU resources for maximum performance.

## Cluster Provisioning

To create a new cluster, navigate to the **Clusters** section under **Compute** on the left menu.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/compute_cluster_selection.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=6e9f40a482c04cca254b9c140e848e92" alt="compute_cluster_selection.png" title="compute_cluster_selection.png" style={{ width:"25%" }} width="282" height="121" data-path="images/compute_cluster_selection.png" />

Select **Create new resource**.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/cluster_new.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=5d3eb642e22fc8a75cad7e8dac58fd34" alt="cluster_new.png" width="1904" height="525" data-path="images/cluster_new.png" />

Provide a name, select a project, and choose the deployment region. If you're unsure which project to use, see [Projects](/docs/manage/projects) for guidance on how projects group your resources.

In the next step, define the **workload pool configuration**:

* Set the pool name using alphanumeric characters and hyphens.

  <img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/cluster_set_up_1.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=e6730efb13101aca01c48229fb11b788" alt="cluster_set_up_1.png" width="1868" height="696" data-path="images/cluster_set_up_1.png" />
* Select the desired **node type**.

  <img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/cluster_set_up_2.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=2048967d8822aa92f7bc2ab0caa53e88" alt="cluster_set_up_2.png" width="1500" height="740" data-path="images/cluster_set_up_2.png" />
* Enable **persistent storage** and specify the desired volume size.
* Choose the **operating system version** and define the **number of replicas**.
* Enable or disable **public IP exposure** as needed.
* Configure **firewall rules** to control inbound access (e.g., allow SSH on port 22).

  <img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/cluster_set_up_3.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=096f83d5ad3722d7956f54aacfa4280e" alt="cluster_set_up_3.png" width="1254" height="841" data-path="images/cluster_set_up_3.png" />
* Optionally, you can provide a **cloud-init configuration** to run custom setup scripts during the first boot of each node.

  <img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/cluster_set_up_4-cloud_init.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=7f5a697c2a810a167e33b840c29b22d4" alt="cluster_set_up_4-cloud_init.png" width="1887" height="513" data-path="images/cluster_set_up_4-cloud_init.png" />
* Once the configuration is completed, review the cluster and provision it. When provisioning is complete, the cluster status will be set to ‘**Provisioned’**, and connection details, including the SSH private key and workload pool IP addresses, will be available in the cluster overview.

  <img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/cluster_set_up_5.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=1524ac3b8720909ba80d23ebc4bee49f" alt="cluster_set_up_5.png" width="1886" height="971" data-path="images/cluster_set_up_5.png" />

## Monitoring and observability

Users can monitor resource utilisation directly from the operating system using the Interactive Process Viewer `htop`.

```
htop
```

More information can be found in [GitHub-htop](https://github.com/htop-dev/htop?utm_source=chatgpt.com)

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/htop.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=f1cd759551727aac7bcbd29d671d8f6a" alt="htop.png" width="1675" height="1058" data-path="images/htop.png" />

## Create a new pool on the existing cluster

Once inside the cluster, open the **Workload Pools** tab.

Use the **“+ Add Pool”** button to  start a new pool configuration.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0611-18-40.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=26ef8cd21a628ea178ba287883237319" alt="Screenshot from 2025-10-06 11-18-40.png" style={{ width:"100%" }} width="1877" height="498" data-path="images/Screenshotfrom2025-10-0611-18-40.png" />

Once you are in the cluster, use the **“+ Add Workload Pool”** button to start the new pool configuration.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0611-19-59.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=86a90e2df204fb646e7481b310e46673" alt="Screenshot from 2025-10-06 11-19-59.png" width="1879" height="556" data-path="images/Screenshotfrom2025-10-0611-19-59.png" />

Define the name, base image, instance type, replica count, and any required firewall rules, following the steps outlined in the **Cluster Provisioning** section. Finalise by selecting **Create**. The new pool will appear in the list as provisioned.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0613-43-07.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=946ca9c7ae1b09a83e27e4c4a773acc0" alt="Screenshot from 2025-10-06 13-43-07.png" width="1877" height="791" data-path="images/Screenshotfrom2025-10-0613-43-07.png" />

## Evicting a VM from an existing pool

It is possible to evict a Virtual Machine from an existing pool. This process does not automatically migrate any existing workloads from the evicted VM to other Virtual Machines in the pool. The user has to manage the workload before eviction manually.

Select the VM to evict from the pool by clicking the three dots on the right.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0613-50-39.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=1821fd71cdaae251d76ce3abf3d820a8" alt="Screenshot from 2025-10-06 13-50-39.png" width="1970" height="921" data-path="images/Screenshotfrom2025-10-0613-50-39.png" />

After a short while, the VM will be removed from the pool, its resources returned to the available resource pool, and any public IP associated with the VM will be released. This process will also delete any data stored on ephemeral storage. To retain data, persistent storage must be configured separately.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0613-51-56.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=1dc1f6d7f65239b155c1b17a6d50567a" alt="Screenshot from 2025-10-06 13-51-56.png" width="1887" height="893" data-path="images/Screenshotfrom2025-10-0613-51-56.png" />

The pool should now show that only 3 Virtual Machines remain active out of the 3 originally in the pool.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0613-52-31.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=e0ed09889fc1bc47fac6c14e548c6e2c" alt="Screenshot from 2025-10-06 13-52-31.png" width="1873" height="790" data-path="images/Screenshotfrom2025-10-0613-52-31.png" />

## Deleting a pool from an existing cluster

This process operates at a higher level than deleting a single VM. The user does not need to evict the VMs individually. Once the pool is deleted, all VMs within it will also be evicted automatically. All associated resources, including ephemeral data and public IPs, will be released from the cluster. Users must ensure that any data they wish to retain is saved to persistent volumes beforehand.

Select the pool you want to delete. Click the three-dot menu on the right and choose **Delete Pool**.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0613-49-11.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=42804c1dad600b5e43a2dcf0ff162646" alt="Screenshot from 2025-10-06 13-49-11.png" width="2064" height="809" data-path="images/Screenshotfrom2025-10-0613-49-11.png" />

To confirm the delete operation, enter the name of the pool in the confirmation panel.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0613-53-35.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=0e535b63666aeaaa5d9944d9c9fdd9fe" alt="Screenshot from 2025-10-06 13-53-35.png" width="1881" height="748" data-path="images/Screenshotfrom2025-10-0613-53-35.png" />

The selected pool is not part of the cluster.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0613-54-33.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=8464b94c138ea79629615e5683c1ffe0" alt="Screenshot from 2025-10-06 13-54-33.png" width="1885" height="521" data-path="images/Screenshotfrom2025-10-0613-54-33.png" />

## Delete a cluster

The cluster `user-guide-test` contains one or more workload pools with running Virtual Machines. Before initiating the deletion process, ensure that any data that needs to persist is stored in a persistent volume. Ephemeral data will be permanently deleted.

In the **Workload Pools** tab, click the green **Provisioned** button in the top-right corner of the cluster view.\
Select **Delete cluster** from the dropdown menu to begin the deletion process.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0613-55-08.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=72d89367c21589033430df2b97a13340" alt="Screenshot from 2025-10-06 13-55-08.png" width="1923" height="515" data-path="images/Screenshotfrom2025-10-0613-55-08.png" />

Deleting a cluster will **permanently remove all resources associated with it**, including:

* All workload pools
* All Virtual Machines
* Any ephemeral storage
* Any assigned public IPs\
  All resources will be evicted and released back to the shared resource pool.

A confirmation panel appears. To confirm the operation, enter the name of the cluster in the dialogue box.

Once the deletion is initiated, the cluster status changes to **Deprovisioning**.\
When the process completes, the cluster is removed from the **Compute Clusters** list and all associated resources are fully deallocated.

<img src="https://mintcdn.com/nscale/eHooAh3A-xA3WCln/images/Screenshotfrom2025-10-0613-56-15.png?fit=max&auto=format&n=eHooAh3A-xA3WCln&q=85&s=f3d9e7026461396a78fb8f76eb94f327" alt="Screenshot from 2025-10-06 13-56-15.png" width="1933" height="638" data-path="images/Screenshotfrom2025-10-0613-56-15.png" />
