启动开发集群#
SkyPilot 使得在 Kubernetes 或云虚拟机上进行交互式开发变得简单。它帮助您:
启动#
要启动一个带有廉价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 在任何云上启动。
注意
使用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连接到集群并使用集群名称来实现:
点击顶部栏,输入:
> remote-ssh,然后选择Remote-SSH: Connect Current Window to Host...从主机列表中选择集群名称(例如,
dev)。打开文件夹:
sky_workdir并找到你的代码。
有关更多详细信息,请参阅VSCode文档。
Jupyter 笔记本#
Jupyter笔记本是用于交互式开发、调试和可视化的有用工具。
连接到机器并转发jupyter notebook使用的端口:
ssh -L 8888:localhost:8888 dev
在集群内部,您可以运行以下命令来启动一个Jupyter会话:
pip install jupyter
jupyter notebook
在您的本地浏览器中,您现在应该能够访问 localhost:8888 并看到以下屏幕:
输入密码或令牌,您将被引导到一个可以创建新笔记本的页面。
你可以使用nvidia-smi来验证这个笔记本是否运行在GPU支持的实例上。
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
您可以验证此笔记本是否已访问挂载的存储桶。

