Skypilot support for AI workloads on Crusoe Managed Kubernetes

AI and ML Jobs


We are excited to announce Phase 1 of SkyPilot integration on Crusoe Managed Kubernetes (CMK). If you are already running a CMK cluster, you can bring it under the SkyPilot platform. Simply point SkyPilot at your existing cluster. kubeconfig And preparations for takeoff are complete. This short tutorial will show you how to:

  • Install Crusoe CLI and provision a CMK cluster
  • Install SkyPilot with Kubernetes support
  • Onboard your CMK cluster to SkyPilot
  • Launch your first job with a CMK via SkyPilot

This first phase is all about seamless compatibility and kubeconfig support. Get ready for even tighter integration with “Phase 2” bringing native API-driven functionality.

For now, enjoy the ease of deploying your own cluster. Let’s get started.

What is SkyPilot?

SkyPilot is an open source framework built on Ray that allows you to run machine learning and batch jobs across the cloud (or any Kubernetes cluster) without changing your code.

Below are some highlights.

  • Automatic cluster discovery: SkyPilot reads local kubeconfig Identify all compatible contexts.
  • Integrated CLI: A single, powerful tool to launch jobs on AWS, GCP, Azure, or your own Kubernetes environment.
  • Distributed training made easy: Using Ray internally, SkyPilot easily handles RPCs and task scheduling across all nodes.

By integrating SkyPilot with your CMK, you can now treat your Crusoe cluster as another powerful cloud target in your arsenal.

Prerequisites

Before you begin, make sure you have the following ready:

  • Crusoe’s account A provisioned CMK cluster and Nvidia GPU Operator installed
  • Crusoe CLI Installed (see below)
  • Python 3.8+ and pip
  • Accessing the cluster kubeconfig (Usually located at:) ~/.kube/config)
  • SkyPilot CLI With Kubernetes support

Step 1: Install the Crusoe CLI and provision the CMK cluster

If you don’t already have a CMK cluster, it’s time to set one up. First, install Crusoe CLI and create a cluster by running the following command:

crusoe kubernetes clusters create --name 
--cluster-version  --location 
--project-id  --add-ons nvidia_gpu_operator

Once your cluster is provisioned and ready, get the credentials using the following command:

crusoe clusters get-credentials my-cluster --project-id 

Step 2: Install SkyPilot with Kubernetes support

Next, install or upgrade SkyPilot’s CLI to include Kubernetes.

pip install --upgrade "skypilot[kubernetes]"

Verify that SkyPilot can see your CMK GPU.

sky check kubernetes

You should see output listing your k8s clusters.

Step 3: Launch your first job

Now that SkyPilot is configured to communicate with your Crusoe cluster, you’re ready to submit your Ray or batch jobs. Let’s start with a simple “hello world” example.

first, hello.py script:

# hello.py
print("Hello from SkyPilot on Crusoe Kubernetes!")

create hello_k8s.yaml script:

# hello_k8s.yaml      # should be located in same directory as hello.py
name: hello-k8s
workdir: .            # sync current dir into the pod

resources:            
  cloud: kubernetes         
  cpus: 1+            # any free CPU slot is fine

run: |
  python hello.py

Sent via SkyPilot:

sky launch -c hello-demo hello_k8s.yaml

This command tells SkyPilot to:

  • Use the CMK context (kubernetes autodetects the current kubeconfig).
  • Run python hello.py in that pod

Once the job starts, you will see the streamed logs in your terminal.

Launching a new cluster 'hello-demo'. Proceed? [Y/n]: Y
⚙︎ Launching on Kubernetes.
└── Pod is up.
✓ Cluster launched: hello-demo.  View logs: sky api logs -l sky-2025-06-13-11-12-38-962199/provision.log
⚙︎ Syncing files.
  Syncing workdir (to 1 node): /Users/pphelan/Desktop/crusoe/hello-k8s -> ~/sky_workdir
✓ Synced workdir.  View logs: sky api logs -l sky-2025-06-13-11-12-38-962199/workdir_sync.log
⚙︎ Job submitted, ID: 1
├── Waiting for task resources on 1 node.
└── Job started. Streaming logs... (Ctrl-C to exit log streaming; job will not be killed)
(hello-k8s, pid=1435) Hello from SkyPilot on Kubernetes!
✓ Job finished (status: SUCCEEDED).

That’s it. First SkyPilot job successfully executed on Crusoe. Congratulations!

What’s next?

Phase 2: Native API integration

It’s just the beginning. “Phase 2” is already underway and will feature deeper native API integration. This allows you to manage your CMK cluster directly through the SkyPilot API and SDK, without the need for manual kubeconfig.

Stay tuned:

  • Interact with Crusoe directly via SkyPilot CLI
  • SkyPilot Spot Instance Support

We look forward to hearing from you. Please feel free to contact Crusoe Support. You can also check out the SkyPilot GitHub repository for more information and examples, or visit the CMK product page to start your own cluster. Happy flying!



Source link