跳转到内容

0.5.0

  • CubePlex cbxref_ 零信任出站 MITM 与沙箱隔离 CA 注入。 在 cubepod-egress 中打通 CubePlex cbxref_ 占位符置换协议及基于 ExchangeURL 触发的 TLS MITM 拦截,拆分离线只读 <box>-egress-ca Secret(仅含 mitm-ca.crt,在 Block 模式下由 podd-init 合成 /run/cubepod/ca-certificates.crt)与 <box>-egress-mtls,并在 cubepod-controller、cubepod-gateway 与 cubepod-egress 全链路新增 -egress-upstream-ca-file 以支持私有上游 CA。详见零信任出站代理与密钥隔离。
  • Kata Cloud Hypervisor(kata-clh)与 Longhorn V2 在 EEVDF 内核下的 SPDK 调优。 在 deploy/k8s/longhorn-v2/values.yaml 将 spdk_tgt 轮询核心固定为 CPU 1(v2DataEngineCPUMask: "0x2")以防饿死 CPU 0 内核调度,并在 deploy/k8s/longhorn-v2/prep-node.sh 新增 cubepod-spdk-sched-idle systemd 定时任务与单核 95% cpu.max 上限,避免 Linux 6.6+/7.0 EEVDF 环境下 kworker/1:* workqueue 阻塞导致的卷卸载卡死。详见Kata 与块存储部署指南。
  • podd HTTP Range 分段传输与 Gateway 空阶段兜底。 在 crates/podd 文件下载接口支持 206 Partial Content Range 流式读取,并在 Gateway resolveSandbox 中将未回写阶段的 PodBox 统一映射为 provisioning。
  • 出站代理 Host/URL 一致性校验防 SSRF(pkg/egress/proxy.go)。 在 ServeHTTP(GET 与 CONNECT)、TransparentHTTPHandler 与 serveMITMTLS 中强制校验 Host 请求头、URL.Host、协议 Scheme 与 TLS SNI 一致性,阻断请求目标走私。
  • 控制器 CRD 状态落盘、Fork/Reset 回滚与 WarmPool 清理加固(pkg/controller/reconciler.go、kubeclient_crd.go)。 创建 PodBox 时立即执行 UpsertPodBox 持久化初始状态;在 ensureEgressSecretsLocked 或 EnsurePod 失败时完整保留 ResetRootFS 新代次 PVC 进度;为失败的冷创建与 ForkFrom 提供资源回滚且保留确定性 VolumeKey 工作区 PVC;清理失败预热 Pod 时先删 Pod 再删 PVC 避免 pvc-protection 卡死;并在 SyncFromKube 中以 SanitizeLabelValue 清洗 WarmPool 标签选择器。
  • Kata MicroVM RLIMIT_NOFILE 钳制(crates/podd)。 在 podd 启动及子命令拉起时将 Kata 默认继承的 1073741824 文件描述符上限钳制至 65536/1048576,消除 start-stop-daemon 等工具遍历关闭句柄导致的 99% CPU 空转。

0.5.0 未变更 Kubernetes CRD 字段定义(若从 0.4.0 或更早版本升级,请先执行 kubectl apply -f deploy/helm/cubepod/crds/)。

请按 Kubernetes 与 Helm 部署指南 将 cubepod-controller、cubepod-gateway、cubepod-egress 与 cubepod-podd 镜像及 Helm Chart 同步升级至 v0.5.0,并更新客户端 SDK(pip install -U cubepod==0.5.0 / npm install cubepod@0.5.0)。在 Linux 6.6+/7.0 节点部署 Longhorn V2 时,请按 Kata 与块存储部署指南重新执行 deploy/k8s/longhorn-v2/prep-node.sh 并应用 v2DataEngineCPUMask: "0x2" 配置。

GitHub Release · 自 0.4.2 以来的完整变更