启动开发集群#

SkyPilot 使得在 Kubernetes 或云虚拟机上进行交互式开发变得简单。它帮助您:

  1. Launch: 通过一个命令快速获取带有GPU或其他资源需求的集群。

  2. Autostop: 在一段空闲时间后自动停止集群以节省成本。

  3. Connect: 使用集群名称轻松连接到集群:

启动#

要启动一个带有廉价GPU的集群进行开发:

# Launch a cluster with 1 NVIDIA GPU and sync the local working directory to the
# cluster.
sky launch -c dev --gpus T4 --workdir .

这可以作为 pod 在您的 Kubernetes 集群中启动,也可以作为 VM 在任何云上启动。

在Kubernetes中以pod形式启动集群

在Kubernetes中以pod的形式启动集群#

在GCP上以虚拟机形式启动集群

在GCP上以虚拟机形式启动集群#

注意

使用sky show-gpus命令查看支持的GPU。

自动停止#

SkyPilot 允许您在一段空闲时间后自动停止集群以节省成本。您可以通过一个命令设置自动停止时间:

# Auto stop the cluster after 5 hours
sky autostop -i 300 dev

或者在启动时添加一个额外的标志 -i

# Launch a cluster with auto stop after 5 hours
sky launch -c dev --gpus T4 --workdir . -i 300

有关自动停止的更多详细信息,请查看:自动停止和自动关闭。此功能旨在防止空闲集群产生不必要的成本,确保您的集群自动停止,无论是在夜间还是整个周末。

连接#

用户可以轻松地使用您选择的方法连接到集群:

SSH#

SkyPilot 将自动配置集群的 SSH 设置,以便用户可以使用集群名称连接到集群:

ssh dev

VSCode#

交互式开发的一个常见用例是将本地IDE连接到远程集群,并直接编辑集群上的代码。 这可以通过简单地将VSCode连接到集群并使用集群名称来实现:

  1. 点击顶部栏,输入:> remote-ssh,然后选择Remote-SSH: Connect Current Window to Host...

  2. 从主机列表中选择集群名称(例如,dev)。

  3. 打开文件夹:sky_workdir 并找到你的代码。

有关更多详细信息,请参阅VSCode文档

Connect to the cluster with VSCode

Jupyter 笔记本#

Jupyter笔记本是用于交互式开发、调试和可视化的有用工具。

连接到机器并转发jupyter notebook使用的端口:

ssh -L 8888:localhost:8888 dev

在集群内部,您可以运行以下命令来启动一个Jupyter会话:

pip install jupyter
jupyter notebook

在您的本地浏览器中,您现在应该能够访问 localhost:8888 并看到以下屏幕:

Jupyter认证窗口

输入密码或令牌,您将被引导到一个可以创建新笔记本的页面。

创建一个新的Jupyter笔记本

你可以使用nvidia-smi来验证这个笔记本是否运行在GPU支持的实例上。

笔记本中的nvidia-smi

GPU节点是一个普通的SkyPilot集群,因此您可以在其上使用常规的CLI命令。例如,运行sky down/stop来终止或停止它,以及sky exec来执行任务。

SkyPilot任务中的Notebooks#

Jupyter notebooks 也可以在 SkyPilot 任务中使用,允许访问 SkyPilot 的全部功能,包括 挂载存储自动停止

以下 jupyter.yaml 是一个任务规范的示例,可以使用 SkyPilot 启动笔记本。

# jupyter.yaml

name: jupyter

resources:
  accelerators: T4:1

file_mounts:
  /covid:
    source: s3://fah-public-data-covid19-cryptic-pockets
    mode: MOUNT

setup: |
  pip install --upgrade pip
  conda init bash
  conda create -n jupyter python=3.9 -y
  conda activate jupyter
  pip install jupyter

run: |
  cd ~/sky_workdir
  conda activate jupyter
  jupyter notebook --port 8888 &

启动支持GPU的Jupyter笔记本:

sky launch -c jupyter jupyter.yaml

要本地访问笔记本,请使用SSH端口转发。

ssh -L 8888:localhost:8888 jupyter

您可以验证此笔记本是否已访问挂载的存储桶。

从笔记本访问新冠疫情数据