SkyPilot 是一个开源框架,能够通过单一 YAML 配置跨 20+ 云提供商(如 AWS、GCP、Azure、RunPod 等)、Kubernetes 和 Slurm 集群统一编排和管理隔离 VM。这特别适合低延迟交互应用,例如自托管 AI 代理 OpenClaw 或 serverless 游戏托管场景,避免了供应商锁定,并实现按需启动 / 暂停的 serverless 体验。
SkyPilot 的核心机制:Portable YAML 定义隔离 VM
SkyPilot 的 YAML 规范定义了资源需求(resources)、环境秘密(secrets)、预设环境(setup)和运行命令(run)。例如,对于低延迟应用,指定 cpus: '2+' 和 memory: '4+',SkyPilot 会自动在配置的云中挑选最廉价可用实例,支持 spot/preemptible 以降低 3-6x 成本。
关键优势在于网络隔离:应用不暴露 public ports,而是通过 SSH tunnel 访问(如 OpenClaw 的 WebChat 绑定 localhost:18789)。这确保了强隔离,VM 无个人凭证、SSH 密钥或浏览器会话,compromised 时 blast radius 限于 VM 本身。同时,支持 auto-failover:spot 中断时自动重试其他云 / 实例。
证据来自官方示例,SkyPilot 将手动 VM provisioning、Node.js 安装和应用启动封装为 declarative spec,一键 launch 后支持 sky stop(暂停保留状态)/sky start(快速恢复)/sky down(彻底销毁)。
OpenClaw 示例:低延迟 AI 代理的隔离部署
OpenClaw 是一个连接 WhatsApp/Telegram 等平台的 AI 代理,需要 shell 执行、浏览器自动化和文件访问。为安全起见,必须在隔离 VM 运行。SkyPilot 的 openclaw.yaml 示例精确展示了参数:
resources:
cpus: '2+'
memory: '4+'
secrets:
ANTHROPIC_API_KEY: # 运行时 --env 注入
setup: |
# 安装 Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt install -y nodejs
sudo npm i -g openclaw@latest
# 首次生成 config 和 token,后续复用
run: |
openclaw gateway --verbose
落地命令:
pip install "skypilot[aws,gcp,azure]" && sky check:安装并验证凭证。sky launch openclaw.yaml -c openclaw --env ANTHROPIC_API_KEY=sk-...:启动 VM,日志显示 token。ssh -L 18789:localhost:18789 openclaw:tunnel 访问 http://localhost:18789。ssh openclaw 'openclaw onboard':连接渠道(WhatsApp QR 等)。
恢复:sky stop openclaw 暂停(保留~/.openclaw 状态),sky start openclaw 秒级 resume,适合交互式使用。成本约 0.03-0.05 USD / 小时,使用 autostop 闲置 30min 后自动关机。
“SkyPilot 通过 YAML 自动化 provisioning,避免手动管理 security groups 或端口。”(来源:SkyPilot 博客)。
可落地参数与优化清单
资源阈值:
- CPU/Mem:交互 app 用 '2+:4+',游戏需加 accelerators: 'A10G:1' 或 T4。
- Disk:默认 100GB,file_mounts 挂载 S3/GCS 持久化~/.app_state(mode: MOUNT_CACHED 支持 POSIX)。
- Region:指定 cloud: aws:region:us-west-2 以低延迟。
网络与安全:
- 无 ports:全靠 SSH/RSYNC,
rsync -avz openclaw:~/.openclaw/ local_backup/备份状态。 - Secrets:--env 注入 API keys,从不存 YAML。
监控与运维:
| 参数 | 值 | 作用 |
|---|---|---|
| sky status | - | 查看队列、运行中、成本 |
| sky queue | - | 作业调度,gang scheduling 多节点 |
| sky console | - | Web UI 实时日志 / 指标 |
| auto_stop: idle_time_min: 30 | YAML | 闲置自动停机 |
| spot_policy: aggressive | Managed jobs | 优先 spot,auto recover |
回滚策略:配置多云 failover,sky launch --cloud aws --retry-until-available。对于游戏 hosting,Pools 模式预热 worker pool,支持 batch inference,低延迟 <100ms。
风险限界:
- Spot 中断:managed-jobs 自动 checkpoint/relaunch(恢复时间 <2min)。
- 成本超支:sky status 实时追踪,set budget alerts via cloud console。
- 状态丢失:用 file_mounts S3,
sky down后 relaunch 无缝接续。
扩展到 Serverless 游戏托管
类似 OpenClaw,对于 Claw-like 游戏(实时 AI 对手),YAML 指定 GPU,run WebSocket server,客户端 SSH tunnel 或 VPN 连接。SkyPilot Pools 管理 warm pool,自动 scaling,避免冷启动延迟。相比 K8s,YAML 更简,无需 Helm/YAML boilerplate;相比原生云,portable 无 lock-in。
实际落地:clone https://github.com/skypilot-org/skypilot/examples/openclaw,调整 run 为游戏 binary。测试本地 sky local up,上线云端。
总之,SkyPilot 将隔离 VM 编排工程化为参数化清单,阈值如 cpus '2+'、idle 30min autostop,确保低延迟 app 的可靠 serverless 部署。
资料来源:
- SkyPilot 文档
- OpenClaw on SkyPilot 博客
- GitHub Repo
- HN 讨论:SkyPilot 成本优化与多云案例。