Skip to content2026.05.14 发布 v0.2.1
🌟 重大新功能
- 官方 Python SDK (
cubesandbox v0.1.0):随仓库发布的第一方 Python SDK,位于 sdk/python/,与 CubeAPI OpenAPI 规范完全对齐。覆盖沙箱全生命周期管理(创建/连接/暂停/销毁/列表/健康检查)、代码执行(流式 stdout/stderr)、文件系统访问、直连传输及网络策略配置。附带 12 个完整示例、并发性能基准测试,76/76 测试全部通过。
🚀 性能优化
- 跳过 Cubelet 每次启动时的 SHA256 校验:将
SyncKernelFile 拆分为 EnsureKernelFilePresent(按需拷贝,快速路径)和 RefreshKernelFile(强制刷新并校验),消除每次启动的高开销 SHA256 比对。在模板数量较多的主机上,正常启动延迟显著降低。 - 跳过 CubeMaster 冗余的
docker pull:当源镜像已存在于本地时,跳过镜像拉取,消除模板构建时不必要的镜像仓库往返请求。
🛡️ 安全修复
shim: protobuf 3.4.0 → 3.7.2(RUSTSEC,恶意构造的未知字段可导致栈溢出)。同步升级 containerd-shim-protos、containerd-shim 和 nix。cubeapi / agent / shim / hypervisor: rand 0.8.5 → 0.8.6(GHSA-cq8v-f236-94qc,修复 ThreadRng 重新播种时的健全性问题)。CubeVS: golang.org/x/net → v0.38.0, golang.org/x/sys → v0.38.0。network-agent: google.golang.org/grpc → 1.79.3。CubeAPI/examples: pygments → 2.20.0。
🛠️ 关键修复
- 修复 Seccomp 静默拦截所有系统调用:
Seccomp 初始化现在设置 DefaultAction = ActAllow,空系统调用列表直接短路为空操作,而非静默阻止所有调用。 - 修复
shim stderr 被错误路由到 stdout:Exec 流转发路径中 stderr 错误调用了 stdout 的读取方法;现在 stderr 可被正确捕获并转发。 - 修复
CubeProxy 多 Worker 共享相同 PRNG 种子:OpenResty Worker 现在在 init_worker 中以 (ngx.now() * 1000 + ngx.worker.id()) 为每个 Worker 独立播种,避免缓存 TTL 抖动失效和同步缓存过期风暴。 - 修复开发环境同步覆盖
cube-shim 软链接:cube-runtime 和 containerd-shim-cube-rs 现在写入 ${TOOLBOX_ROOT}/cube-shim/bin,保留工具箱软链接布局。 - 修复 HTTPS-only 镜像源导致 Dockerfile 构建失败:在切换 APT 源至内部镜像之前先安装
ca-certificates,避免 TLS 证书缺失导致引导失败。
✨ 功能增强
cubemastercli tpl watch — 阶段性进度输出:将原有的多行全量状态刷新替换为简洁的 [N/7] PHASE 进度行加终端摘要;在 CI 日志中更加友好。- IPAM — 全面优化与可靠性改进(Cubelet + network-agent):基于
net/netip 重写校验逻辑;通过 encoding/binary.BigEndian 简化 IP 与索引互转;为 Allocate / Release / Assign 添加边界检查和安全性限制;所有 IPAM 方法增加 nil 防护;明确文档化保留地址语义;新增全面的表驱动测试和并发测试。
⚙️ 工程改进
- 示例重组为独立顶级目录:从
CubeAPI/examples/ 迁移至顶层 examples/,新增独立的 host-mount 和 network-policy 目录(各自附带 README);注释翻译为英文。 cube-bench 提升为 examples/cube-bench:现为独立 Go 模块,带自己的 Makefile。- Go 工具链对齐:
CubeVS 和 network-agent 升级至 Go 1.24.8,与 Cubelet / CubeMaster 保持一致。 cubecli 国际化:benchrun.go 中残余的中文使用说明翻译为英文。- Docker 构建上下文清理:
Makefile 构建器镜像现在从 ./docker 构建,而非仓库根目录。 - Alpine 镜像源切换:APK 仓库从
dl-cdn.alpinelinux.org 切换至 mirrors.tencent.com。
🤖 CI / DevOps
- DCO 检查工作流:新增专用 PR 门禁,当任何非合并提交缺少有效
Signed-off-by 签名时阻断合入。 - GitHub ARC (Actions Runner Controller) 支持:自托管 ARC 运行器已接入内核/包构建工作流。
- 消除重复 PR 检查:多个工作流的
push 触发器现在仅限 master 分支;PR 验证仅通过 pull_request 事件运行 — CI 成本减半。 sync-to-cnb:改用 CNB_GIT_PASSWORD 密钥。
📚 文档更新
- 部署指南重写:PVM 和裸金属现为首选部署路径。
- OpenCloudOS 9 上 PVM 快速部署:
pvm-deploy.md 新增分步操作章节。 - "关于我们"页面:新增中英文版本,并配置 VitePress 导航。
- 项目 README 新增 X (Twitter) 链接。
- 文档细节修正:修正 Python 导入路径和架构图间距。
README_zh.md 更新微信/助手二维码。