2026.05.14 发布 v0.2.1
🌟 重大新功能
- 官方 Python SDK (
cubesandboxv0.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,空系统调用列表直接短路为空操作,而非静默阻止所有调用。 - 修复
shimstderr 被错误路由到 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更新微信/助手二维码。