Skip to content

2026.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-protoscontainerd-shimnix
  • 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 被错误路由到 stdoutExec 流转发路径中 stderr 错误调用了 stdout 的读取方法;现在 stderr 可被正确捕获并转发。
  • 修复 CubeProxy 多 Worker 共享相同 PRNG 种子:OpenResty Worker 现在在 init_worker 中以 (ngx.now() * 1000 + ngx.worker.id()) 为每个 Worker 独立播种,避免缓存 TTL 抖动失效和同步缓存过期风暴。
  • 修复开发环境同步覆盖 cube-shim 软链接cube-runtimecontainerd-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-mountnetwork-policy 目录(各自附带 README);注释翻译为英文。
  • cube-bench 提升为 examples/cube-bench:现为独立 Go 模块,带自己的 Makefile。
  • Go 工具链对齐CubeVSnetwork-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 更新微信/助手二维码