快速开始
本文介绍如何在 TKE 集群中启用 Cube Agent Sandbox,并使用 E2B 兼容 SDK 运行第一段代码。
开始前,请确认:
- 已创建 TKE 集群。
- 集群中至少有一个可用于运行沙箱的原生节点池。
- 节点规格、操作系统和内核满足 Micro-VM runtime 要求。
- 集群已启用可用的 CNI 和 CSI 组件。
- 当前账号具备安装插件、管理节点池、创建 Service、管理安全组和创建 Kubernetes 资源的权限。
步骤一:安装 Cube Agent Sandbox 插件
Section titled “步骤一:安装 Cube Agent Sandbox 插件”- 登录 TKE 控制台。
- 进入目标集群。
- 打开“插件管理”。
- 找到“Cube Agent Sandbox”插件。
- 单击“安装”。
- 等待插件状态变为“运行中”。
插件安装完成后,系统会在集群中创建控制面组件、CRD、网关组件和节点侧 DaemonSet。
步骤二:启用节点池高级特性
Section titled “步骤二:启用节点池高级特性”- 进入“节点池”页面。
- 选择一个原生节点池。
- 在“高级特性”中开启“Micro-VM 沙箱”。
- 保存配置。
- 等待节点池状态变为“已启用”。
启用过程中,系统会检查节点的 runtime、内核、KVM/PVM 支持和组件健康状态。检查失败时,可在节点池详情页查看失败原因。
步骤三:创建 SandboxTemplate
Section titled “步骤三:创建 SandboxTemplate”创建一个 Python 代码解释器模板:
apiVersion: sandbox.tke.cloud.tencent.com/v1alpha1kind: SandboxTemplatemetadata: name: code-interpreter-python namespace: agent-demospec: image: ccr.ccs.tencentyun.com/demo/code-interpreter:py311 resources: cpu: "2" memory: 4Gi command: - /usr/local/bin/start-runtime ports: - name: runtime containerPort: 49999 runtime: type: cube-pvm warmPool: replicas: 2 maxReplicas: 20 ttlSeconds: 1800执行:
kubectl create namespace agent-demokubectl apply -f sandbox-template.yamlkubectl get sandboxtemplate -n agent-demo当模板状态为 Ready 后,可以创建沙箱实例。
步骤四:创建 SandboxGateway
Section titled “步骤四:创建 SandboxGateway”创建内网访问入口:
apiVersion: sandbox.tke.cloud.tencent.com/v1alpha1kind: SandboxGatewaymetadata: name: default namespace: agent-demospec: access: internal: true public: false routing: splitControlAndDataPlane: true执行:
kubectl apply -f sandbox-gateway.yamlkubectl get sandboxgateway -n agent-demo步骤五:创建 Team 和 API Key
Section titled “步骤五:创建 Team 和 API Key”创建 Team:
apiVersion: sandbox.tke.cloud.tencent.com/v1alpha1kind: SandboxTeammetadata: name: demo-team namespace: agent-demospec: namespaceRef: agent-demo quota: maxRunningSandboxes: 100 maxCPU: "200" maxMemory: 400Gi执行:
kubectl apply -f sandbox-team.yaml在控制台中进入“Agent Sandbox > Team”,为 demo-team 创建 API Key,并记录访问地址和 Key。
步骤六:使用 SDK 运行代码
Section titled “步骤六:使用 SDK 运行代码”安装 SDK:
pip install e2b-code-interpreter运行示例:
from e2b_code_interpreter import Sandbox
sbx = Sandbox.create( template="code-interpreter-python", api_key="YOUR_API_KEY", timeout=1800, metadata={ "team": "demo-team", "namespace": "agent-demo" })
execution = sbx.run_code("print('hello from TKE Cube Agent Sandbox')")print(execution.logs.stdout)
sbx.kill()如果输出 hello from TKE Cube Agent Sandbox,说明沙箱创建和代码执行成功。
使用 SandboxClaim 创建实例
Section titled “使用 SandboxClaim 创建实例”您也可以通过 Kubernetes 声明式方式创建沙箱:
apiVersion: sandbox.tke.cloud.tencent.com/v1alpha1kind: SandboxClaimmetadata: name: demo-claim namespace: agent-demospec: templateRef: code-interpreter-python teamRef: demo-team ttlSeconds: 1800执行:
kubectl apply -f sandbox-claim.yamlkubectl get sandboxclaim demo-claim -n agent-demo查看实例状态:
kubectl describe sandboxclaim demo-claim -n agent-demo