0.5.0
CubePod 0.5.0
Section titled “CubePod 0.5.0”- CubePlex
cbxref_零信任出站 MITM 与沙箱隔离 CA 注入。 在cubepod-egress中打通 CubePlexcbxref_占位符置换协议及基于ExchangeURL触发的 TLS MITM 拦截,拆分离线只读<box>-egress-caSecret(仅含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-idlesystemd 定时任务与单核95%cpu.max上限,避免 Linux 6.6+/7.0 EEVDF 环境下kworker/1:*workqueue 阻塞导致的卷卸载卡死。详见Kata 与块存储部署指南。 poddHTTP Range 分段传输与 Gateway 空阶段兜底。 在crates/podd文件下载接口支持206 Partial ContentRange流式读取,并在 GatewayresolveSandbox中将未回写阶段的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 空转。
升级前注意事项
Section titled “升级前注意事项”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" 配置。