[ PROMPT_NODE_22506 ]
skypilot-multi-cloud-orchestration
[ SKILL_DOCUMENTATION ]
# SkyPilot 多云编排
使用 SkyPilot 跨云运行机器学习工作负载并进行自动成本优化的综合指南。
## 何时使用 SkyPilot
**在以下情况使用 SkyPilot:**
- 跨多个云(AWS、GCP、Azure 等)运行机器学习工作负载
- 需要通过自动选择云/区域进行成本优化
- 在竞价实例上运行长作业并需要自动恢复
- 管理分布式多节点训练
- 需要 20 多个云提供商的统一接口
- 需要避免供应商锁定
**核心功能:**
- **多云支持**:AWS、GCP、Azure、Kubernetes、Lambda、RunPod 等 20 多个提供商
- **成本优化**:自动选择最便宜的云/区域
- **竞价实例**:通过自动恢复实现 3-6 倍的成本节省
- **分布式训练**:支持组调度的多节点作业
- **托管作业**:自动恢复、检查点保存、容错
- **Sky Serve**:支持自动扩缩容的模型服务
**替代方案:**
- **Modal**:适用于更简单的 Python 原生 API 的无服务器 GPU
- **RunPod**:适用于单云持久化 Pod
- **Kubernetes**:适用于现有的 K8s 基础设施
- **Ray**:适用于纯基于 Ray 的编排
## 快速入门
### 安装
bash
pip install "skypilot[aws,gcp,azure,kubernetes]"
# 验证云凭据
sky check
### Hello World
创建 `hello.yaml`:
yaml
resources:
accelerators: T4:1
run: |
nvidia-smi
echo "Hello from SkyPilot!"
启动:
bash
sky launch -c hello hello.yaml
# SSH 连接到集群
ssh hello
# 终止集群
sky down hello
## 核心概念
### 任务 YAML 结构
yaml
# 任务名称 (可选)
name: my-task
# 资源需求
resources:
cloud: aws # 可选:如果省略则自动选择
region: us-west-2 # 可选:如果省略则自动选择
accelerators: A100:4 # GPU 类型和数量
cpus: 8+ # 最少 CPU
memory: 32+ # 最少内存 (GB)
use_spot: true # 使用竞价实例
disk_size: 256 # 磁盘大小 (GB)
# 分布式训练的节点数
num_nodes: 2
# 工作目录 (同步到 ~/sky_workdir)
workdir: .
# 设置命令 (运行一次)
setup: |
pip install -r requirements.txt
# 运行命令
run: |
python train.py
### 关键命令
| 命令 | 用途 |
|---------|---------|
| `sky launch` | 启动集群并运行任务 |
| `sky exec` | 在现有集群上运行任务 |
| `sky status` | 显示集群状态 |
| `sky stop` | 停止集群(保留状态) |
| `sky down` | 终止集群 |