CubeSandbox 是一个基于 RustVMM 和 KVM 的开源沙箱服务,专为 AI Agent 设计
CubeSandbox 高性能安全沙箱详细部署教程
CubeSandbox 是一个基于 RustVMM 和 KVM 的开源沙箱服务,专为 AI Agent 设计。它能在 60ms 内创建一个硬件隔离、内存开销低于 5MB 的 MicroVM,提供极致的安全性和并发性能。本教程将指导您在 x86_64 Linux 环境(支持 KVM)上完成部署。
📋 目录
- CubeSandbox 是什么
- 部署架构与准备
- 部署路径概览
- 路径一:PVM 云服务器部署(推荐)
- 路径二:裸金属服务器部署
- 路径三:开发测试环境部署
- 首次使用与验证
- 高级配置与管理
- 更新与卸载
- 常见问题排查
CubeSandbox 是什么
CubeSandbox 是一个为 AI Agent 提供安全、轻量、极速执行环境的沙箱服务。它利用硬件虚拟化技术,为每个沙箱提供独立的操作系统内核,并通过 eBPF 实现网络隔离。
核心优势:
- ⚡ 极速启动:平均启动时间 < 60ms,即使在 50 并发下 P99 延迟也仅为 137ms。
- 🔒 硬件隔离:每个沙箱运行在独立的 MicroVM 中,拥有专用内核,安全性极高。
- 📦 高密度部署:每个沙箱内存开销 < 5MB,单台服务器可运行数千实例。
- 🔌 E2B SDK 兼容:无需修改代码,仅需更改环境变量即可从 E2B 迁移。
部署架构与准备
核心组件
| 组件 | 职责 |
|---|---|
| CubeAPI | 高并发 REST API 网关(兼容 E2B SDK) |
| CubeMaster | 集群编排器,接收 API 请求并调度给 Cubelet |
| CubeProxy | 反向代理,将请求路由至具体沙箱实例 |
| Cubelet | 计算节点代理,管理本机所有沙箱生命周期 |
| CubeVS | 基于 eBPF 的虚拟交换机,提供网络隔离 |
| CubeEgress | 七层安全网关,进行域名过滤与凭证注入 |
硬件与系统要求
- 操作系统:x86_64 Linux(推荐 OpenCloudOS 9、Ubuntu 22.04/24.04)
- 虚拟化支持:CPU 必须支持 KVM 并已启用
- 内存:根据并发沙箱数量而定,建议 ≥ 16GB
- 磁盘:≥ 100GB(用于存储镜像和模板)
- 网络:良好的内网连通性(多节点部署)
检查 KVM 支持:
1 | egrep -c '(vmx|svm)' /proc/cpuinfo # 输出 > 0 表示支持 |
部署路径概览
| 路径 | 目标 | 适用场景 |
|---|---|---|
| PVM 云服务器(推荐) | 在普通云虚拟机上部署(无需嵌套虚拟化) | 生产环境、快速试用 |
| 裸金属服务器 | 在物理机上部署,性能最佳 | 高吞吐、低延迟生产环境 |
| 开发测试环境 | 在 QEMU 虚拟机内体验(性能较差) | 功能验证、学习探索 |
路径一:PVM 云服务器部署(推荐)
这是官方推荐的部署方式,通过自动化脚本在普通云虚拟机上完成安装。
1. 登录您的 Linux 服务器,确保 KVM 支持。
2. 执行一键部署脚本
1 | # 下载并执行安装脚本(会自动检测环境并安装依赖) |
此脚本会安装 CubeSandbox 所需的全部组件,包括 KVM 加速包、网络配置等。
3. 启动服务
1 | # 启动所有服务(CubeAPI, CubeMaster, CubeProxy, Cubelet 等) |
4. 设置开机自启
1 | systemctl enable cubesandbox |
5. 验证安装
1 | # 查看所有服务状态 |
路径二:裸金属服务器部署
在物理机上部署以获得最佳性能。此路径与 PVM 类似,但能直接利用硬件特性。
1. 准备环境
1 | # 确保系统为 x86_64 Linux,并更新内核 |
2. 安装 Docker 和必要工具
1 | # 以 Ubuntu 为例 |
3. 使用 Terraform 一键部署
CubeSandbox 提供了 Terraform 模板,可快速在裸金属上创建集群。
1 | git clone https://github.com/TencentCloud/CubeSandbox.git |
Terraform 将自动配置所有组件。
路径三:开发测试环境部署
如果您的环境不支持 KVM(如普通云虚拟机、WSL),可以使用此方式在 QEMU 虚拟机内体验,但性能会显著下降。
1. 准备一台 安装有 QEMU 的 Linux 主机(建议 16GB 内存以上)。
2. 下载预配置的 OpenCloudOS 9 镜像
1 | wget https://github.com/TencentCloud/CubeSandbox/releases/download/v0.7.0/opencloudos9-cubesandbox.qcow2 |
3. 启动 QEMU 虚拟机
1 | qemu-system-x86_64 \ |
虚拟机内部已预装 CubeSandbox,您可通过 VNC 或 SSH(映射到主机 5555 端口)访问。
首次使用与验证
部署完成后,可以通过 Web 控制台或 SDK 来管理沙箱。
访问 Web 控制台
在浏览器中打开:http://<您服务器的公网IP>:12088
您可以在此:
- 概览:查看节点状态与容量。
- 模板商店:安装官方预置模板(如 Python、Node.js 环境)。
- 沙箱:创建并管理沙箱实例,查看实时日志。
使用 Python SDK 测试
安装 Python SDK:
1 | pip install cubesandbox |
编写测试脚本 (test_sandbox.py):
1 | from cubesandbox import Sandbox |
运行脚本:
1 | python test_sandbox.py |
若输出 “Hello from CubeSandbox!”,则部署成功!
高级配置与管理
使用 Terraform 部署生产集群(Tencent Cloud)
CubeSandbox 提供官方 Terraform 模块,可在腾讯云上快速创建生产级集群。
1 | cd CubeSandbox/deploy/terraform/tencent-cloud |
在 Kubernetes 上部署
参考 K8s 部署文档,通过 Helm Chart 将控制平面和计算节点部署到 K8s 集群。
配置安全代理与凭证保险库
CubeSandbox 支持 L7 安全代理 (CubeEgress),可精细控制沙箱的对外访问域名和路径,并自动注入凭证,密钥不会进入沙箱内部。
1 | # 配置 egress 规则(示例) |
更新与卸载
更新 CubeSandbox
- 拉取最新代码或安装脚本。
- 重新执行部署命令(脚本会处理版本升级)。
卸载 CubeSandbox
停止服务:
1
2systemctl stop cubesandbox
systemctl disable cubesandbox删除相关文件(根据安装路径,通常为
/opt/cubesandbox):1
rm -rf /opt/cubesandbox
(可选)移除 Docker 镜像和网络配置。
常见问题排查
问题:安装脚本提示 KVM 不可用。
- 解决:确保 CPU 支持虚拟化且在 BIOS 中开启。如在云虚拟机中,需确认机型支持嵌套虚拟化(如腾讯云 PVM 实例)。
问题:无法访问 Web 控制台(端口 12088)。
- 解决:检查服务器防火墙是否放行了 12088 端口。尝试
curl http://localhost:12088确认服务是否正常运行。
问题:Python SDK 连接超时。
- 解决:确认
api_url中的 IP 和端口(默认 12080)正确,且服务器防火墙已放行该端口。
问题:创建沙箱失败,提示 “No ready template”。
- 解决:请先通过 Web 控制台的“模板商店”安装一个官方模板,或使用 API 创建一个自定义模板。
通过以上步骤,您应能成功部署并运行 CubeSandbox。对于生产环境,建议仔细阅读官方文档中的安全指南和性能调优章节。如需更多帮助,可加入其 Discord 社区 或提交 GitHub Issue。


