4.7 跨服务凭据
CubeSandbox 部署依赖多个组件:
CubeSandbox 部署依赖多个组件:
CubeSandbox 自带 WebUI 控制台,登入后由后端数据库(mysql/postgres)管理 session,不发 cookie,而是用 x-session-token header 携带不透明 token。
CubeSandbox 的多租户基于 containerd namespaces(namespaces.WithNamespace(ctx, ns))+ tenant label + Redis keyspace 三层组合。
Every request (except /health) must carry an Authorization: Bearer <token> or X-API-Key: <key> header
CubeAPI 启动时创建一个全局共享的 reqwest::Client 实例,所有外部 HTTP 调用(auth callback、webhook、镜像拉取)都通过它发出。
CubeSandbox 在 API 层用了 token bucket 限流,按 API key 维度分配独立配额。每条请求到来:
CubeSandbox 自身不实现 OAuth/JWT 之类的内嵌认证,而是把"是否放行"的决定委托给一个外部 HTTP 服务。每次接收请求,CubeAPI 都会把请求转发给外部 authcallbackurl,由 callback 返回
Linux 进程树的"reaper"机制决定:谁负责回收"孤儿进程"(parent 死掉但子进程还活着)。在 Linux 中:
vsock 是 Linux 内核内嵌的 VM 主机-客机通信机制。它有一个独立地址族(AFVSOCK),使用 CID(contiguous identifier) 标识 host / guest:
CubeShim 是 containerd shim v2 的实现,注册到 containerd 时 runtime type 是: