- 文档首页
容器服务
弹性容器实例 VCI
用户指南
VCI Agent Sandbox
存储卷挂载
动态挂载(Dynamic)
动态挂载(Dynamic)
本文介绍如何在 VCI Agent Sandbox 场景下,使用存储卷挂载能力,实现 Sandbox 在预热池实例中动态挂载(Dynamic)存储卷,满足不同业务、不同租户对差异化存储的需求。
动态挂载模式无需在模板中预置 Volume,SandboxClaim 认领沙箱实例时指定容器内挂载目录(mountPath),并支持追加新的 Volume 与 volumeMount,由 VCI 以 Hidecar(影子容器)方式注入 CSI 挂载组件保障安全。适用于挂载目录在运行沙箱实例时才能确定、或已有 Annotation 含 mountPath 需低成本平移的场景。当前仅支持 TOS 类型的存储卷。
动态挂载能力通过在 SandboxTemplate 与 SandboxClaim 上添加 Annotation 声明来开启和配置。核心 Annotation 说明如下所示。
使用动态挂载能力时,请注意以下限制。
- VCI 业务集群中已安装 VCI Agent Sandbox 对应的组件:agent-sandbox,用于支持 SandboxTemplate / SandboxWarmPool / SandboxClaim 等 CRD。详细操作,请参见 安装指南。
- 已创建 TOS 存储桶(Bucket)。详细操作,请参见 创建存储桶。
- 创建 SandboxTemplate,并在 podTemplate 的 Annotations 中声明vke.volcengine.com/csi-sidecar-inject: "true",开启动态挂载模式。示例 SandboxTemplate YAML 文件dynamic-mount-template.yaml内容如下所示。
- 执行以下命令,创建 SandboxTemplate。
预热池将基于模板预热一批处于 Running 状态的 Sandbox,使认领请求直接命中预热实例。动态挂载所需的 Hidecar 与 Init 容器也在此阶段完成注入。
- 创建 SandboxWarmPool,示例 YAML 文件dynamic-mount-warmpool.yaml内容如下所示。
- 执行以下命令创建 SandboxWarmPool。
通过 Secret 管理访问 TOS 的凭证。
- 创建 Secret 的 YAML 文件。示例文件vke-tos-secret.yaml代码如下。
说明
您可以使用echo -n "${ak}" | base64命令对 AK、SK 等进行 Base64 编码,并将下方代码中的所有******替换为您自己的实际值。更多 Base64 编码说明,请参见 FAQ。 准备动态挂载的目标 PV,目前动态挂载模式仅支持 TOS 存储类型。
- 创建 PV 的 YAML 文件。示例 YAML 文件pv-tos-shared.yaml内容如下所示。
本文提供如下两种创建 Sandbox 方式。
通过 SandboxClaim 认领
通过 E2B SDK 创建
通过创建 SandboxClaim 并指定 mountPath 的方式,发起认领 Sandbox 并声明动态挂载配置。Annotation 中包含mountPath字段即进入动态挂载模式,控制器通过 Hidecar 通道执行 CSI 挂载,将指定 PV 的子目录挂载到容器内的任意绝对路径。
- 创建 SandboxClaim。示例 YAML 文件dynamic-mount-claim.yaml内容如下所示。
基于已创建的 SandboxTemplate,使用 E2B 协议创建 Sandbox,可在 Sandbox 的metadata中传入动态挂载 Annotation。示例代码如下,更多 E2B SDK 相关参数说明和开发指南,请参见 E2B SDK 开发指南。 说明
E2B SDK 中template参数需配置为已创建的 SandboxTemplate 的 ID,不同方式创建的 SandboxTemplate 其 ID 取值不同:
- 通过 Kubernetes API(YAML)创建 SandboxTemplate 时:Template ID 为<metadata.namespace 值--metadata.name 值>,例如default--dynamic-mount-template。
- 通过 VCI E2B SDK 创建 SandboxTemplate 时:Template ID 为实际返回的template_id参数值。
确认存储卷已按预期挂载到容器指定目录,并可正常读写。
- 预期返回结果如下,Mounted on 列为/mnt/data,Filesystem 为 TOS 挂载,说明 TOS 已挂载到目标目录。
- 预期返回结果如下,列出 TOS Bucket 中tenant-a子目录下的文件与目录。
最近更新时间:2026.09.18 16:01:27