Skip to main content
Nebius AI Cloud supports integration with SkyPilot, an open-source framework for running AI workloads on different cloud infrastructures. SkyPilot can create clusters of Compute virtual machines (VMs) and run workloads on them based on task definitions like this:
In this tutorial, you will deploy and use the Managed SkyPilot API Server, a standalone application available in the Nebius AI Cloud console, to manage your SkyPilot workloads.

Costs

Nebius AI Cloud charges you for the following billing items:

Prerequisites

  1. Deploy the Managed SkyPilot API Server:
    1. In the Nebius AI Cloud console, go to  AI orchestration → SkyPilot.
    2. Enter a name for the application or keep the default one.
    3. Select a Platform and a Preset (vCPUs and RAM) for the API server VM.
    4. Click Deploy application.
  2. Install uv, a Python package manager, on your local machine:
  3. Install the SkyPilot CLI:
  4. Connect to the managed API server. On the application page, click How to connect and copy the login command. Run the command in your terminal:
    Replace <your_server_endpoint> with the public endpoint URL from your deployed application.
  5. Verify that SkyPilot can access your project:
    If the check is successful, the output contains the following:
  6. Clone the Nebius ML Cookbook repository and go to the skypilot directory:
    The ML Cookbook contains example task definitions used in this tutorial.
  7. If you want to test mounting Object Storage buckets to VMs, create a bucket.

Steps

  1. Run SkyPilot tasks from the Nebius ML Cookbook: You can choose to run some or all of these tasks, depending on your use cases.
  2. Work with the VMs managed by SkyPilot as part of the tasks:
If you face issues when you launch tasks or work with the VMs, see the troubleshooting section.

Run tasks

Run a GPU check

The GPU check in this tutorial creates a VM with one NVIDIA® H100 GPU and runs the NVIDIA System Management Interface (nvidia-smi) on it. nvidia-smi outputs the list of GPUs available on the VM and the list of processes running on the GPUs.
  1. Launch the task:
  2. When SkyPilot displays which resources it is going to create and asks you to confirm the launch, enter Y and press Enter.
If the launch is successful, the output contains the list of GPUs and processes running on them returned by nvidia-smi:

Run an Object Storage check

The Object Storage check creates a VM and mounts a bucket from your project to it.
  1. In examples/test-cloud-bucket.yaml, find source: nebius://my-nebius-bucket under file_mounts and replace my-nebius-bucket with the name of your bucket.
  2. Launch the task:
  3. When SkyPilot displays which resources it is going to create and asks you to confirm the launch, enter Y and press Enter.
If the launch is successful, the output contains the list of objects in the bucket:

Run an InfiniBand check

The InfiniBand check creates a cluster of two VMs with 8 NVIDIA® H100 GPUs each, connected with InfiniBand, and runs the ib_send_bw test from perftest. The test measures bandwidth when sending data between GPUs on different VMs.
  1. Launch the task:
  2. When SkyPilot displays which resources it is going to create and asks you to confirm the launch, enter Y and press Enter.
If the launch is successful, the output contains the results of the test:

Run a training task

The training task adapts a tutorial from the PyTorch documentation and its implementation from the SkyPilot documentation. It creates a cluster of two VMs with 8 NVIDIA® H100 GPUs each, connected with InfiniBand. Then, it uses PyTorch to train a GPT-like model with Distributed Data Parallel on the VMs.
  1. Launch the task:
  2. When SkyPilot displays which resources it is going to create and asks you to confirm the launch, enter Y and press Enter.
If the launch is successful, the output contains training logs:
The training task also has a single VM (non-distributed) version. To launch it, run sky launch ai-training examples/ai-training.yaml.

Work with the VMs managed by SkyPilot

After you created a cluster and launched a task on it, you can use SkyPilot and Nebius AI Cloud tools to monitor the cluster and connect to its VMs.

Monitor the SkyPilot clusters and VMs

To see the statuses of the SkyPilot clusters, run the following command:
You can also monitor individual VMs in the Nebius AI Cloud web console. The VMs’ names have the cluster name as the prefix.

Connect to the VMs

SkyPilot sets up SSH access to VMs in clusters automatically.
  • To connect to the main (“head”) VM of the cluster, run ssh <cluster_name>. For example:
  • To connect to other VMs (“workers”), run ssh <cluster_name>-worker<index>. For example:
For more details, see the SkyPilot documentation.

Troubleshoot issues

Unavailable resources

When you run sky launch, you might get the following error:
It means that the resources that you specified in the task definition exceed your Compute quotas. For details on how to view and manage quotas, see Quotas in Nebius AI Cloud.

Connection errors

If SkyPilot commands fail with connection errors, make sure the Managed SkyPilot API Server is running. Check the application status in the Nebius AI Cloud console under  AI orchestration → SkyPilot. If the server is running, verify your connection by running sky api login again with the correct endpoint URL.

Authentication errors

If you get authentication errors when running SkyPilot commands, verify that you are connected to the managed API server by running sky api login again with the correct endpoint URL.

Other issues

If you face problems that are not covered by this tutorial, you can create issues in relevant GitHub repositories:

How to delete the created resources

Some of the created resources are chargeable. If you don’t need them, delete these resources, so Nebius AI Cloud doesn’t charge for them:
  • Delete VMs and GPU clusters that SkyPilot created for all tasks in this tutorial:
  • Delete the bucket that you used in the Object Storage task.
  • If you no longer need the Managed SkyPilot API Server, delete it in the Nebius AI Cloud console. Go to  AI orchestration → SkyPilot, open the application, go to the Settings tab and click Delete application.

InfiniBand and InfiniBand Trade Association are registered trademarks of the InfiniBand Trade Association.