CubeSandbox 实战:从零部署到快照/克隆/回滚全体验

发布时间:2026/7/5 3:08:22
CubeSandbox 实战:从零部署到快照/克隆/回滚全体验 CubeSandbox 实战从零部署到快照/克隆/回滚全体验服务器: 腾讯云 CVM沐曦算力 |OS: OpenCloudOS 9.4 |CubeSandbox: v0.5.0GitHub: TencentCloud/CubeSandbox一、CubeSandbox 是什么CubeSandbox 是腾讯云开源的一款安全沙箱运行时Sandbox Runtime基于轻量级虚拟机microVM技术为 AI Agent / 代码执行 / 多租户隔离等场景提供毫秒级启动、快照-克隆-回滚三大能力的沙箱化基础设施。本文将在腾讯云 CVM 上完成从零部署到体验三大核心能力的完整流程。二、环境概览2.1 服务器规格项目信息实例 IDins-8zxst9gs主机名VM-0-29-opencloudos公网 IP43.138.197.216内网 IP10.101.0.29CPU8 核内存15 GiB磁盘100 GB vda1操作系统OpenCloudOS 9.4SSH 端口98882.2 CubeSandbox 架构一览┌──────────────────────────────────────┐ │ CubeSandbox WebUI │ │ http://IP:12088 │ └──────────────┬───────────────────────┘ │ ┌───────────────────────┼───────────────────────┐ │ │ │ ┌───────────▼───────────┐ ┌────────▼────────┐ ┌─────────▼──────────┐ │ CubeMaster │ │ CubeEgress │ │ CubeProxy │ │ (Template Sandbox │ │ (MITM Proxy / │ │ (Gateway Routing) │ │ Lifecycle Mgmt) │ │ API Key 托管) │ │ │ └───────────┬───────────┘ └────────┬────────┘ └─────────┬──────────┘ │ │ │ ┌───────────▼───────────────────────▼───────────────────────▼──────────┐ │ Cubelet │ │ (Node Agent — microVM 创建/销毁/快照/克隆/回滚) │ └───────────┬─────────────────────────────────────────────────────────┘ │ ┌───────────▼───────────┐ ┌──────────────┐ ┌────────────────────┐ │ kvm_pvm │ │ CoreDNS │ │ MySQL Redis │ │ (PVM 虚拟化内核模块) │ │ (沙箱 DNS) │ │ (元数据 缓存) │ └───────────────────────┘ └──────────────┘ └────────────────────┘三、第一步安装 PVM 内核CubeSandbox 的 microVM 依赖 PVM轻量级虚拟化内核模块。需要先安装专用的 Linux 内核。3.1 安装内核包dnfinstall-ykernel-6.6.69-1.1.cubesandbox.oc9实际执行输出Package kernel-6.6.69-1.1.cubesandbox.oc9.x86_64 is already installed. Dependencies resolved. Nothing to do. Complete!说明腾讯云 CVM 已预装 CubeSandbox 内核生产环境首次部署时需要下载安装约 80MB。3.2 设置默认启动内核grubby --set-default /boot/vmlinuz-6.6.69-1.1.cubesandbox.oc9.x86_64实际输出The default is /boot/loader/entries/98823c2f3f5b4b35875d9c96c3e2537b-6.6.69-1.1.cubesandbox.oc9.x86_64.conf with index 1 and kernel /boot/vmlinuz-6.6.69-1.1.cubesandbox.oc9.x86_64参数解释grubby --set-default修改 GRUB2 默认启动项回显The default is ...不是报错是正常确认信息3.3 配置 PVM 内核启动参数curl-sLhttps://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/pvm/grub/host_grub_config.sh|bash实际输出Generating grub configuration file ... Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. Adding boot menu entry for UEFI Firmware Settings ... done3.4 重启进入新内核reboot重启后验证uname-r# 输出: 6.6.69-1.1.cubesandbox.oc9.x86_64踩坑提示重启前确保 grub 默认项已正确设置。若进入旧内核需进 grub 菜单手动选择。3.5 加载 KVM 模块modprobe kvm_pvm lsmod|grepkvm_pvm实际输出kvm_pvm 49152 0 kvm 1163264 1 kvm_pvm kmem_cache 16384 2 kvm,kvm_pvm设置开机自启动echokvm_pvm/etc/modules-load.d/kvm-pvm.conf参数解释kvm_pvmPVM 核心驱动模块49152 modprobe 默认 48KB 内存占用实际运行时约 50MBkvmLinux KVM 基础模块被 kvm_pvm 依赖Used by1kmem_cache跨模块共享的内核内存缓存四、第二步一键安装 CubeSandbox4.1 执行安装脚本curl-sLhttps://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh\|CUBE_PVM_ENABLE1MIRRORcnbash环境变量说明变量值含义CUBE_PVM_ENABLE1启用 PVM 虚拟化必选否则不加载 kvm_pvmMIRRORcn使用中国大陆镜像源加速下载4.2 安装过程记录[one-click] glibc version 2.38 OK ( 2.31) [one-click] auto-detected node IP from eth0: 10.101.0.29 [one-click] using node IP: 10.101.0.29 [one-click] using primary network interface: eth0 [one-click] default CubeSandbox network CIDR preflight OK: 192.168.0.0/18 [one-click] checking and installing dependencies... [one-click] installing docker via yum... [one-click] release manifest contract OK [one-click] CUBE_PVM_ENABLE1, selected PVM guest kernel: vmlinux-pvm4.3 安装的服务清单安装完成后/etc/systemd/system下自动注册了10 个 systemd 服务服务名类型用途cube-sandbox-coredns容器沙箱内部 DNS 解析cube-sandbox-cube-api守护进程CubeSandbox REST APIcube-sandbox-cube-egress守护进程透明 MITM 代理API Key 托管cube-sandbox-cube-proxy容器网关路由 / Gateway 代理cube-sandbox-cubelet守护进程节点 AgentmicroVM 生命周期cube-sandbox-cubemaster守护进程模板 实例编排cube-sandbox-mysql容器元数据存储cube-sandbox-network-agent守护进程沙箱网络管理cube-sandbox-redis容器缓存 状态存储cube-sandbox-webui容器Web 管理界面4.4 安装的 CLI 工具命令路径用途cubemastercli/usr/local/bin/模板 实例管理客户端cubecli/usr/local/bin/通用沙箱操作 CLIcube-runtime/usr/local/bin/沙箱运行时containerd-shim-cube-rs/usr/local/bin/containerd Cube shim五、第三步创建模板验证功能5.1 创建第一个沙箱模板cubemastercli tpl create-from-image\--imagecube-sandbox-cn.tencentcloudcr.com/cube-sandbox/sandbox-code:latest\--writable-layer-size 1G\--expose-port49999\--expose-port49983\--probe49999参数解释参数值含义--imagesandbox-code:latest基础沙箱镜像内置 Python/Node.js 等运行时--writable-layer-size1G沙箱可写层大小上限取决于磁盘--expose-port49999暴露 Code Server 端口Web IDE--expose-port49983暴露附加服务端口--probe49999健康检查端口探活5.2 模板创建过程7 步流水线[1/7] PULLING progress0% ← 拉取镜像 [2/7] UNPACKING progress20% artifact_idrfs-eaa... ← 解包镜像层 [5/7] DISTRIBUTING progress70% ← 分发到节点 [6/7] CREATING progress85% distribution1/1 ready ← 创建模板元数据 [7/7] READY progress100% ← 就绪 ✅实际输出template image job succeeded template_idtpl-4abeef4448bc41d2820b93a8 job_id7b5fe777-d35c-4540-afc4-aa7aa01be5ae artifact_idrfs-eaaad36d9aa650524205b058 distribution1/1 ready, 0 failed5.3 确认模板状态cubemastercli tpl list实际输出TEMPLATE_ID STATUS CREATED_AT IMAGE_INFO tpl-4abeef4448bc41d2820b93a8 READY 2026-07-04T08:31:37Z sandbox-code:latestsha256:5ad58...状态为READY即表示 CubeSandbox 完整部署成功可以正常创建沙箱实例。六、第四步登录 WebUI浏览器访问http://43.138.197.216:12088字段值地址http://43.138.197.216:12088默认账号admin默认密码admin踩坑提示如果无法访问检查云服务器安全组是否放行了12088端口TCP 入方向。WebUI 首页可看到运行中的沙箱实例卡片已创建的沙箱模板列表数字助手入口七、第五步配置数字助手WebUI7.1 配置 LLM 服务在 WebUI 登录后进入「数字助手」页面配置 LLM 模型服务字段值ProviderOpenAI CompatibleLLM Base URLhttps://newapi-2607.cubesandbox.com/v1模型 IDhy3-previewAPI Keysk-JhXt...托管后只显示掩码••••9Qww凭证交付方式凭证托管推荐安全机制选择「凭证托管」后API Key 由CubeEgress透明 MITM 代理托管沙箱内部无法直接获取真实密钥。OpenClaw 配置中只保存托管占位 Key。保存后 WebUI 确认已配置 openai-compatible / hy3-previewKey••••9Qww来源数据库方式凭证托管推荐7.2 安装数字助手模板在「模板市场」→「AI · LLM」中选择轻量版 OpenClawlightweight-openclaw-deepseek-wecom:latest约 2.5 GB点击「安装并启用到数字助手」。模板创建完成后约 40 秒创建数字助手实例配置项值实例名称openclaw-test助手模板龙虾助手 · 轻量版 ·tpl-4fe74ef5f3c54ee1a49cde05状态管理模式完整快照型模型hy3-preview创建后实例卡状态运行中✅Sandbox ID0bfae8c116174a64a9523f1d6a2a5bcd版本2026.4.5-t.27踩坑记录轻量版 OpenClaw 模板默认使用deepseek/deepseek-v4-flash模型但实际 API endpoint 是兼容 OpenAI 格式的hy3-preview。首次对话会报错Unknown model: deepseek/deepseek-v4-flash需在 OpenClaw 聊天界面底部模型选择器手动切换到hy3-preview模型才能正常响应。切换后模型状态变为hy3-preview · Medium。7.3 核心能力一快照Snapshot切换到 CLI 操作。首先确认当前运行的沙箱cubemastercli list实际输出NODE_SCOPE 1-1 NODES_SCANNED 1/1 SANDBOX_COUNT 1 sandbox_id status host_id create_at 0bfae8c116174a64a9523f1d6a2a5bcd running 10.101.0.29 2026-07-04 16:50:43为这个沙箱创建一份快照cubemastercli snapshot create\--sandbox-id 0bfae8c116174a64a9523f1d6a2a5bcd\--display-name snap-test-001\--json实际输出{requestID:a3dcece6-5e21-4f7a-94d0-419928abd0cf,ret:{ret_code:200,ret_msg:success},snapshot:{snapshot_id:snap-daf46ef7c84a41e98fd3eb6b,instance_type:cubebox,version:v2,status:READY,display_name:snap-test-001,origin_sandbox_id:0bfae8c116174a64a9523f1d6a2a5bcd,origin_node_id:10.101.0.29,storage_backend:cubecow,rootfs_size_bytes_at_snapshot:2000000000,created_at:2026-07-04T08:56:22Z,replicas:[{node_id:10.101.0.29,node_ip:10.101.0.29,status:READY,phase:READY,spec:cpu2000m,mem2000Mi}]},operation:{operation_id:db651a55-2854-4388-9823-afb92a595fb0,snapshot_id:snap-daf46ef7c84a41e98fd3eb6b,sandbox_id:0bfae8c116174a64a9523f1d6a2a5bcd,operation:SNAPSHOT_CREATE,status:READY,phase:REGISTERING,progress:100}}关键字段解读字段值说明snapshot_idsnap-daf46...快照唯一 ID后续克隆和回滚都依赖它statusREADY快照已就绪rootfs_size_bytes_at_snapshot2000000000快照时 rootfs 大小 2 GBstorage_backendcubecowCopy-on-Write 存储克隆和回滚秒级的关键replicas[0].speccpu2000m,mem2000Mi该快照副本的资源规格 2 vCPU 2G 内存7.4 核心能力二克隆Clone基于快照通过 REST API 创建克隆分身实例curl-s-XPOST\-HContent-Type: application/json\-d{templateID:tpl-4fe74ef5f3c54ee1a49cde05, snapshotID:snap-daf46ef7c84a41e98fd3eb6b}\http://127.0.0.1:3000/cubeapi/v1/sandboxes实际输出{templateID:tpl-4fe74ef5f3c54ee1a49cde05,sandboxID:102bb34fb167434685556f079ffa8130,clientID:558664fe-53ab-4627-b935-c1510cf27745,envdVersion:0.5.11,domain:cube.app}验证结果cubemastercli listNODE_SCOPE 1-1 NODES_SCANNED 1/1 SANDBOX_COUNT 2 ← 已有 2 个沙箱 sandbox_id status host_id create_at 0bfae8c116174a64a9523f1d6a2a5bcd running 10.101.0.29 2026-07-04 16:50:43 ← 原始实例 102bb34fb167434685556f079ffa8130 running 10.101.0.29 2026-07-04 17:00:01 ← 克隆分身两个沙箱同时运行在同一个节点上完全独立、互不影响。克隆耗时不到10 秒这就是 CubeSandbox CoWCopy-on-Write存储的优势。快照 snap-daf46ef7c84a41e98fd3eb6b │ ┌─────────┼─────────┐ ▼ │ ▼ 原始实例 │ 克隆分身 0bfae8... │ 102bb3... (OpenClaw) │ (OpenClaw 副本) │ CoW 共享基础层 独立可写层 完全隔离互不影响7.5 核心能力三回滚Rollback通过 CLI 将原始沙箱回滚到之前创建的快照cubemastercli sandbox rollback\--sandbox-id 0bfae8c116174a64a9523f1d6a2a5bcd\--snapshot-id snap-daf46ef7c84a41e98fd3eb6b实际输出2026/07/04 17:00:10 operation_id: 3be70c78-87a2-4281-b982-e923c0dadf13 2026/07/04 17:00:10 snapshot_id: snap-daf46ef7c84a41e98fd3eb6b 2026/07/04 17:00:10 sandbox_id: 0bfae8c116174a64a9523f1d6a2a5bcd 2026/07/04 17:00:10 operation: SNAPSHOT_ROLLBACK 2026/07/04 17:00:10 status: READY 2026/07/04 17:00:10 phase: READY 2026/07/04 17:00:10 progress: 100%回滚操作瞬间完成同一秒内沙箱恢复到打快照时的完整状态。时间线 ────────────────────────────────────────────────────► 快照 回滚! 验证 snap-daf4... ──────────► 状态恢复 ✅ │ 100% └──── 环境回退到此处 ────┘ (CoW 写时复制, 秒级回滚)核心原理cubecowCube Copy-on-Write存储后端在回滚时不搬运数据只重置文件的 COW 引用链将当前可写层指向快照时的根节点。因此无论原始数据多大回滚都在秒级完成。八、部署踩坑备忘录以下是在实操中需要特别注意的几个点。8.1 PVM 模块只能在 CubeSandbox 内核中加载# 旧内核中modprobe kvm_pvm# FATAL: Module kvm_pvm not found in directory /lib/modules/6.6.119-49.22.oc9.x86_64原因kvm_pvm 是 CubeSandbox 定制内核 6.6.69-1.1 编译的模块与标准内核的/lib/modules不兼容。必须重启进入 CubeSandbox 内核后才能加载。8.2 网络 CIDR 不能与宿主机冲突安装脚本自动探测宿主机网段eth0 10.101.0.0/24默认沙箱网络 CIDR 为192.168.0.0/18。如果宿主机恰好也使用192.168.x.x安装时会提示CIDR preflight FAIL需通过CUBE_SANDBOX_NETWORK_CIDR环境变量指定其他网段。8.3 Docker 安装依赖安装脚本会自动检查 Docker 是否已安装未安装则通过 yum 自动安装。实际环境中安装了 Docker 29.3.1。8.4 端口 12088 安全组放行WebUI 默认监听0.0.0.0:12088。云服务器安全组需放行该端口否则外网无法访问。九、总结通过本次实操完整走通了以下链路安装 PVM 内核 → 重启切换 → 加载 kvm_pvm → 一键安装 CubeSandbox → 创建沙箱模板 → WebUI 配置数字助手 → CLI 验证三大能力 → 快照 snapshot create → 克隆 REST API → 回滚 sandbox rollbackCubeSandbox 的核心价值能力场景实现方式实测耗时快照保存沙箱完整状态CoW 快照cubecow 存储后端~1 秒克隆并行实验 / 多租户隔离基于快照 CoW 引用的秒级复制~10 秒回滚安全试错 / 误操作恢复重置 CoW 引用链1 秒实操产物清单资源ID说明模板codetpl-4abeef4448bc41d2820b93a8sandbox-code 基础镜像模板openclawtpl-4fe74ef5f3c54ee1a49cde05轻量版 OpenClaw原始实例0bfae8c116174a64a9523f1d6a2a5bcdopenclaw-test 数字助手快照snap-daf46ef7c84a41e98fd3eb6b2GB rootfs, CoW 存储克隆分身102bb34fb167434685556f079ffa8130基于快照的独立副本CubeSandbox 将「安全试错、瞬时回退、并行实验」凝练为一键操作是 AI Agent 研发与沙箱化运营的得力基础设施。CubeSandbox GitHub: github.com/TencentCloud/CubeSandbox如果觉得项目不错记得给仓库点个 Star ⭐本文基于 CubeSandbox v0.5.0 实战部署编写 | 环境腾讯云 CVM OpenCloudOS 9.4 沐曦算力