Skip to content

裸金属 / 物理机部署

如果你已经有一台支持 KVM 的 x86_64 Linux 机器,并且 /dev/kvm 可用,那么这是最直接、最适合生产验证的部署路径。

相比通过 dev-env 先起一台体验虚机,裸金属 / 物理机部署更适合:

  • 已经拥有物理机或裸金属服务器
  • 已经在 Linux 虚拟机中开启了嵌套虚拟化
  • 想跳过本地体验环境,直接在真实宿主机上安装 Cube Sandbox
  • 想用最少中间层验证性能、模板构建和沙箱启动链路

适用场景

你可以选择本页路径的前提通常是:

  • 机器为 x86_64 Linux
  • /dev/kvm 存在且可读写
  • 拥有 root 权限
  • 已安装并能正常运行 Docker
  • 能访问互联网,用于下载安装脚本和拉取镜像

如果你的环境是普通云服务器,且宿主层没有开放 KVM,请不要走本页,直接改看 PVM 部署

前置条件

建议至少满足以下条件:

  • 内存 ≥ 8 GB
  • 磁盘空余 ≥ 50 GB
  • Docker 已安装并处于可用状态
  • 能正常执行 ls -la /dev/kvm
  • 当前用户可切换到 root

推荐先做一轮最小自检:

bash
uname -m
ls -la /dev/kvm
docker ps

如果这些检查不过,请先排除宿主机环境问题,再继续安装。

以 root 身份执行

本页中的安装和配置步骤默认都以 root 执行。建议先切换到 root:

bash
sudo su root

如果你在受控环境中不能直接切 root,也至少要保证后续命令具备等价权限。

第一步:安装控制面与运行组件

在目标机器上以 root 身份执行:

bash
curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh | MIRROR=cn bash

如果你的网络环境更适合直接从 GitHub 拉取,也可以使用对应的上游安装脚本地址。

安装完成后,通常会得到以下核心能力:

  • E2B 兼容 REST API
  • CubeMaster、Cubelet、network-agent、CubeShim 等运行组件
  • MySQL 和 Redis 的依赖容器
  • CubeProxy 提供的 TLS 与域名路由能力
  • Web Dashboard 管理界面

第二步:制作第一个模板

安装完成后,建议立刻创建一个代码执行模板,用于验证模板构建、模板 READY 状态和后续沙箱启动链路。

bash
cubemastercli tpl create-from-image \
  --image cube-sandbox-cn.tencentcloudcr.com/cube-sandbox/sandbox-code:latest \
  --writable-layer-size 1G \
  --expose-port 49999 \
  --expose-port 49983 \
  --probe 49999

然后监控构建进度:

bash
cubemastercli tpl watch --job-id <job_id>

等待模板状态变为 READY 后,记录输出中的 template_id

如果你还想了解模板的概念与更细参数,可继续阅读:

第三步:运行第一段 Agent 代码

安装 Python 运行环境和 SDK:

bash
yum install -y python3 python3-pip
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simple
pip install e2b-code-interpreter

设置环境变量:

bash
export E2B_API_URL="http://127.0.0.1:3000"
export E2B_API_KEY="dummy"
export CUBE_TEMPLATE_ID="<你的模板ID>"
export SSL_CERT_FILE="/root/.local/share/mkcert/rootCA.pem"

然后继续使用 E2B SDK:

python
import os
from e2b_code_interpreter import Sandbox

with Sandbox.create(template=os.environ["CUBE_TEMPLATE_ID"]) as sandbox:
    result = sandbox.run_code("print('Hello from Cube Sandbox, safely isolated!')")
    print(result)

如果你更关注 API 接入视角,也可以继续阅读:

安装完成后建议做什么

裸金属路径最推荐的验证顺序是:

  1. 先确认安装脚本执行完成
  2. 再确认模板已经 READY
  3. 再运行一段最小代码验证实例链路
  4. 最后打开 Web Dashboard 做图形化验收

建议继续查看:

常见问题与判断建议

/dev/kvm 不存在

说明当前机器不适合本页路径。最常见情况是:

  • 你实际上在普通云服务器上
  • 宿主层没有开放嵌套虚拟化
  • 当前虚拟机没有正确暴露 KVM

这时应转到 PVM 部署

Docker 正常,但安装后服务不完整

优先回看:

模板一直不 READY

说明问题大概率已经进入模板构建阶段,而不是宿主机 KVM 阶段。优先查看:

下一步