2026.09.23 Release v0.7.2
CubeSandbox 0.7.2 引入了 3 个核心特性以及多个功能增强与问题修复。共计 56 个提交,来自 29 位贡献者。
🎯 核心特性
跨机恢复读取性能大幅提升
S3 后端跨机恢复的沙箱,磁盘数据按需从 S3 拉取;本版本对这条读路径做了系统性优化:
- 新增整对象本地缓存:S3 上的不可变数据对象在节点本地留存,恢复后的反复读取、以及再次导入同一份快照,都直接命中本地缓存,不再回源。
- 恢复期间读放大得到缓解:零散的小块读合并为整对象 GET,并限制并发拉取预算。
- 在默认 MinIO 环境下,跨机恢复 / 从快照创建进入 running 不到 1 秒。
新增 JuiceFS 卷插件
新增 JuiceFS 存储插件:沙箱可挂载 JuiceFS 文件系统作为持久卷,具备完整 POSIX 语义。
Guest 空闲内存自动回收
沙箱内的空闲内存自动回收到宿主机:节点内存占用随沙箱实际用量动态回落,单节点可承载更多沙箱。
✨ 功能增强
模板与存储
- S3lvol 热升级:解决升级 CubeS3lvol 存储组件时,沙箱内出现 EIO 的问题。
- 组件仓库与模板产物存储支持本地文件系统(#1749):组件仓库与模板产物可选择存放在 S3 / 本地磁盘 / PVC / NFS。
- 增量快照修复(#1343):修复增量快照的数据丢失问题。
- 暂停 / 快照路径 virtiofs 提速(#1748):优化暂停前的状态准备流程。
- Cubelet 支持配置模板安装路径,可将大体积模板迁往数据盘(#1675)。
- CubeS3lvol 新增 object cache 功能,跨机恢复时有相同对象读取会优先命中本地 object cache,object cache 和 dest cache 共享本地 cache 存储空间(#1756)。
生命周期与控制面
sandbox.connect支持timeout参数(#1352)。
部署与运行时
- K8s 部署的 cube-node 默认改用 hostNetwork(#1815):cube-node Pod 重建不再销毁网络命名空间,节点上所有沙箱的网络不再随之中断。存量集群切换需先排空计算节点并显式确认(
hostNetworkChangeAck),全新安装不受影响。 - 沙箱冷启动提速(#1694):关闭 guest 内核中与业务无关的 RAID6 PQ 启动基准测试。
Web UI / CubeOps / 其他
- 移除旧 E2B SDK 引用,Python SDK 命令执行统一走
envdConnect RPC(#1786)。 - Python SDK 的
run_code(E2B 兼容代码解释器接口)现在也能读到创建沙箱时注入的环境变量(#1323),与commands.run行为一致;需使用新增的 sandbox-code 示例镜像。
🐛 Bug 修复
生命周期与沙箱
- 修复制作模板时内存快照和镜像快照状态不一致的问题(#1760)。
- 修复删除模板删除后已有快照不可用的问题(#1763)。
- 修复并发构建镜像时任务永久停留在
BUILT状态,数据库连接超时的竞态问题(#1802)。 - 修复快照创建请求重试被误判为请求内容变化而拒绝的问题(#1253)。
- 修复暂停中的沙箱 Info / List 查询不返回超时时间(
end_at=0)的问题(#1801)。 - 修复 Connect 显式传入的超时时间对已运行沙箱不生效的问题;更短的超时不会缩短已有的更长时限,Python SDK 补齐该参数(#1352)。
- 修复 PVM 识别问题:上游 PVM ABI 移除了 CPUID 签名,改为通过 KVM 支持的 MSR 列表判定,新旧 ABI 兼容(#1781)。
- 修复 PVM guest 在 Intel 宿主上启动时因 GMI sm3/sm4 探测误判而内核 panic 的问题(#1725)。
- 修复 ARM 平台暂停后恢复失败(Could not restore GICv3ITS state)的问题:vgic 状态保存被编译器错误优化为全零(#1658)。
网络与安全
- 修复 overlay CNI 下沙箱 guest MTU 大于节点上行网卡、开箱即网络不通的问题:guest MTU 默认自动跟随节点网卡(只降不升),可用
cubeNode.network.mtu固定(#1674)。
部署与升级
- 修复一键部署下
CUBE_SANDBOX_CUBE_EGRESS_IMAGE环境变量未正确更新到.one-click.env的问题(#1788)。 - 修复 CubeOps 配置 MySQL 密码含特殊字符时连接失败的问题;错误配置现在启动即报错(#1617)。
- 修复一键安装在 snap 版 Docker 上静默失败的问题,现在会直接提示改用
docker-ce(#1789)。 - 修复一键部署下各组件 Redis 逻辑库配置不一致、CubeOps 指标写错库的问题(#1705)。
- 修复 Ubuntu 上安装 PVM 失败的问题(#1770)。
- 修复模板产物缓存无法单独迁移到数据盘的问题(#1675)。
- 修复 s3lvol 默认绑死 CPU0/CPU1 的问题,未配置时自动选用其他 CPU(#1713)。
其他
- 修复 PostgreSQL 下模板别名重复错误按错误文本误判、模板状态发布偶发失败的问题,改按
SQLSTATE精确分类(#1724)。 - 修复
cubebenchCPU 拓扑报告的兼容性问题(#1757)。 - 新增 Ubuntu 桌面沙箱示例与集成指南(#1746)。
- 新增 OpenCode 集成方案:通过插件钩子把 bash 重定向进沙箱,避免命令直接落在开发机上(#1238)。
- 新增 CI 状态页(#1737)。
- 修正 PVM 的展开说明:Pagetable-based,而非 Parallel(#1772)。
- 文档新增安全警示:HTTP 方式注入凭据不安全,仅限受控内网使用,建议优先 HTTPS(#1818)。