阿里云部署腾讯Cube sandbox-1 官方指南快速开始 | Cube Sandbox环境Ubuntu 26.04 64位 至少是2核8G不然检查不通过AI因为这是安装腾讯的CubeSandbox,所以使用https://yuanbao.tencent.com/ 知道的更多些也同时使用千问-阿里 AI 助手XFSUbuntu 默认使用 ext4 文件系统在 Ubuntu 中使用 XFS是指将 Ubuntu 系统的磁盘分区格式化为 XFS 文件系统。XFS 是一种高性能的 64 位日志文件系统最初由 SGI 开发后来被移植到 Linux 内核中目前所有版本的 Ubuntu 均对其提供完全支持腾讯Cube sandbox是基于XFS,XFS 专为处理大规模数据和高吞吐量工作负载而设计在处理大型文件和高并发 I/O 时性能表现优异。申请云盘系统盘是不能改文件系统的所以要申请单独的一个云盘每次重装系统要重新挂载初始查看1. 使用lsblk命令推荐在终端中输入lsblk可以清晰地查看系统中所有的块存储设备及其挂载关系。新购买的云盘通常会显示为一个新的设备名例如vdb且其MOUNTPOINTS挂载点一栏暂时为空。2. 使用df -h命令输入df -h可以查看已挂载的文件系统及其容量、使用情况。如果您已经完成了格式化和挂载操作新云盘会出现在列表中如果尚未挂载则不会显示。lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 74M 1 loop /snap/core22/2411 loop1 7:1 0 171.1M 1 loop /snap/microk8s/8978 loop2 7:2 0 171.1M 1 loop /snap/microk8s/9072 loop3 7:3 0 49.3M 1 loop /snap/snapd/26865 loop4 7:4 0 50.1M 1 loop /snap/snapd/27406 loop5 7:5 0 66.8M 1 loop /snap/core24/1643 loop6 7:6 0 148.2M 1 loop /snap/docker/3505 sr0 11:0 1 1024M 0 rom vda 253:0 0 70G 0 disk ├─vda1 253:1 0 1M 0 part ├─vda2 253:2 0 200M 0 part /boot/efi └─vda3 253:3 0 69.8G 0 part / vdb 253:16 0 40G 0 disk分析结果系统盘vda70G包含您的系统分区。新云盘vdb40G目前状态为disk且MOUNTPOINTS为空说明它尚未分区、格式化和挂载。接下来您可以按照以下完整步骤将这块 40G 的新云盘格式化为XFS文件系统并挂载使用第一步对新云盘进行分区推荐使用parted工具创建 GPT 分区表并划分一个主分区sudo parted /dev/vdb --script mklabel gpt mkpart primary 1MiB 100%(注如果您的系统没有parted命令也可以使用fdisk /dev/vdb然后依次输入n、p、回车、回车、w来创建分区)第二步刷新分区表让系统识别刚创建的分区sudo partprobe /dev/vdb第三步格式化为 XFS 文件系统----------顺便清除以前数据参考https://github.com/TencentCloud/CubeSandbox/issues/311将新创建的分区vdb1格式化为 XFSsudo mkfs.xfs -f /dev/vdb1第四步创建挂载点并挂载假设您想将这块盘挂载到/mnt/data目录--应该是/data/cubelet不然一会就得卸载sudo mkdir -p /data/cubelet sudo mount /dev/vdb1 /data/cubelet检查一下保证data/cubelet为空第五步配置开机自动挂载非常重要自动执行以下两行语句echo /dev/vdb1 /data/cubelet xfs defaults 0 0 | sudo tee -a /etc/fstab sudo mount -a手动-可以跳过为了防止重启后云盘掉线建议通过 UUID 写入/etc/fstab文件中获取 UUIDsudo blkid /dev/vdb1获得类似如下/dev/vdb1: UUIDcbe BLOCK_SIZE512 TYPExfs PARTLABELprimary PARTUUID0416c685-b9740f86231a可以执行 sudo vim /etc/fstab想粘贴的话复制好后点击shift右键第六步验证您可以再次运行lsblk或df -h确认/dev/vdb1已经成功挂载到/data/cubelet目录下。xfs_info /data/cubelet | grep reflinkrootizwz995ntdz:~#xfs_info /data/cubelet | grep reflink reflink1 bigtime1 inobtcount1 nrext641rootizwz99kdj07ayo2p6q5ntdz:~#df -hFilesystem Size Used Avail Use% Mounted ontmpfs 1.6G 5.0M 1.5G 1% /run/dev/vda3 69G 5.9G 60G 9% /tmpfs 3.8G 0 3.8G 0% /dev/shmefivarfs 256K 7.4K 244K 3% /sys/firmware/efi/efivarsnone 1.0M 0 1.0M 0% /run/credentials/systemd-journald.servicetmpfs 3.8G 0 3.8G 0% /tmpnone 1.0M 0 1.0M 0% /run/credentials/systemd-resolved.service/dev/vda2 197M 6.3M 191M 4% /boot/efinone 1.0M 0 1.0M 0% /run/credentials/systemd-networkd.servicenone 1.0M 0 1.0M 0% /run/credentials/gettytty1.servicetmpfs 7.5G 12K 7.5G 1% /var/snap/microk8s/common/var/lib/kubelet/pods/57c7dc75-2f8b-4907-81eb-341a8f470d9f/volumes/kubernetes.io~projected/kube-api-access-vkv88tmpfs 769M 8.0K 769M 1% /run/user/0/dev/vdb1 40G 816M 40G 2% /data/cubelet可以重启系统后验证还在不在重启命令reboot安装 PVM 内核切换到rootsudo su root因为是unbutu所以参考 DEB 系Ubuntu、Debian安装方法下载idakaReleases · CubeSandbox/CubeSandbox找到linux-image-*opencloudos9.cubesandbox.pvm.host*_amd64.deb这是右键复制的链接不要下载带dpg这个调试包https://cnb.cool/CubeSandbox/CubeSandbox/-/releases/download/v0.5.0/linux-image-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2-dbg_6.6.69-gb85200d80fa2-1_amd64.deb执行以下两个命令# 将下面的 URL 替换为你从 Releases 页面右键复制的实际下载链接 wget https://cnb.cool/CubeSandbox/CubeSandbox/-/releases/download/v0.5.0/linux-image-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2_6.6.69-gb85200d80fa2-1_amd64.deb dpkg -i linux-image-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2_6.6.69-gb85200d80fa2-1_amd64.deb安装完成后会有donerootiZwz99k5ntdZ:~# dpkg -i linux-image-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2_6.6.69-gb85200d80fa2-1_amd64.debSelecting previously unselected package linux-image-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2.(Reading database… 94469 files and directories currently installed.)Preparing to unpack linux-image-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2_6.6.69-gb85200d80fa2-1_amd64.deb…Unpacking linux-image-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2 (6.6.69-gb85200d80fa2-1)…Setting up linux-image-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2 (6.6.69-gb85200d80fa2-1)…dracut: Generating /boot/initrd.img-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2kdump-tools: Generating /var/lib/kdump/initrd.img-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2Sourcing file /etc/default/grubGenerating grub configuration file ...Found linux image: /boot/vmlinuz-7.0.0-22-genericFound initrd image: /boot/initrd.img-7.0.0-22-genericFound linux image: /boot/vmlinuz-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2Found initrd image: /boot/initrd.img-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2Warning: os-prober will not be executed to detect other bootable partitions.Systems on them will not be added to the GRUB boot configuration.Check GRUB_DISABLE_OS_PROBER documentation entry.Adding boot menu entry for UEFI Firmware Settings ...done设置 PVM 内核为默认启动项# 查看已安装的内核列表确认 PVM 内核版本字符串 ls /boot/vmlinuz-*我看到的是/boot/vmlinuz-6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2/boot/vmlinuz-7.0.0-22-generic用红色字体代替下文中PVM_KVER“” 双引号中的内容设置默认启动项为 PVM Host 内核PVM_KVER6.6.69-opencloudos9.cubesandbox.pvm.host-gb85200d80fa2 sed -i s|^GRUB_DEFAULT.*|GRUB_DEFAULT\Advanced options for UbuntuUbuntu, with Linux ${PVM_KVER}\| /etc/default/grub update-grub配置内核启动参数curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/pvm/grub/host_grub_config.sh | bash重启并验证reboot确认当前内核确认已进入 PVM 内核并加载 KVM 模块# 确认当前使用内核版本 uname -r # 期望输出包含opencloudos9.cubesandbox.pvm.host 加载 PVM KVM 模块 modprobe kvm_pvm 确认模块已加载 lsmod | grep kvm 期望输出中包含 kvm_pvm设置开机自动加载kvm_pvm模块echo kvm_pvm /etc/modules-load.d/kvm-pvm.conf安装或检查Docker服务不能用snap命令安装确保有docker.servicesystemctl list-units | grep -i dockersystemctl list-units | grep -i dockersys-devices-virtual-net-docker0.device loaded active plugged /sys/devices/virtual/net/docker0sys-subsystem-net-devices-docker0.device loaded active plugged /sys/subsystem/net/devices/docker0docker.serviceloaded activerunning Docker Application Container Enginedocker.socketloaded activerunning Docker Socket for the API已经存在docker.service loaded active runningdocker.socket loaded active running安装docker(视需要)如果没有docker可以安装CubeSandbox one-click只保证兼容官方 apt/yum 安装的docker.serviceSnap 版会持续遇到这类坑。# 2. 装官方 DockerUbuntu/Debian 示例 apt-get update apt-get install -y ca-certificates curl gnupg lsb-release mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable \ /etc/apt/sources.list.d/docker.list apt-get update apt-get install -y docker-ce docker-ce-cli containerd.io # 3. 确认 systemctl enable --now docker systemctl status docker --no-pager docker psDocker 在本次会话中跳过镜像签名验证*****export DOCKER_CONTENT_TRUST0创建目录和用户组一会要装mysql和redis,先建好目录mkdir -p /data/mysql /data/redis创建用户组给容器cube-egress使用不然会一直重启sudo groupadd -g 8049 cube-egress安装CubeSandBoxcurl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh | CUBE_PVM_ENABLE1 MIRRORcn bashrootiZw:~# curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh | CUBE_PVM_ENABLE1 MIRRORcn bash[online-install] Running pre-download preflight checks...[online-install] glibc version 2.43 OK ( 2.31)[online-install] PVM host detected (kvm_pvm loaded) and CUBE_PVM_ENABLE1 -- proceeding with PVM guest kernel.[online-install] Pre-download preflight checks passed.[online-install] MIRRORcn, fetching latest release info from https://download.cubesandbox.com/release/latest.json...[online-install] CN mirror latest asset: https://cnb.cool/CubeSandbox/CubeSandbox/-/releases/download/v0.5.0/cube-sandbox-one-click-v0.5.0-amd64.tar.gz[online-install] downloading cube-sandbox-one-click-v0.5.0-amd64.tar.gz...% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed100 82 100 82 0 0 1280 0 036233.2M36 84.76M 0 0 1.20M 0 03:13 01:10 02:03 1.19M服务器要下载233.2M内容得等待10分钟七个小矮人重启成功后有7个docker 容器控制台登录当然先要设置安全组然后http://你的ip:12088/账号密码都是admin--------------------------------------------恭喜 完成-------------------------------------------------------------------报错connection refusedMySQL / Redis 根本没启动CubeMaster 依赖 MySQL(3306) 做 DB 迁移MySQL 没起来就会立即退rootizwz99kdj075ntdz:~# 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 49999cubemastercli run fail: Post http://0.0.0.0:8089/cube/template/from-image: dial tcp 0.0.0.0:8089: connect: connection refused这个报错很明确cubemastercli要连本机 8089 端口CubeMaster 控制面但没有任何进程在监听说明 CubeMaster / cube-api 相关 systemd 服务没起来或还在启动中# CubeMaster 启停日志journalctl -u cube-sandbox-cubemaster.service -n 100 --no-pager# cube-apijournalctl -u cube-sandbox-cube-api.service -n 100 --no-pager# MySQL/Redis最常见——DB 没起来导致 CM 起不来journalctl -u cube-sandbox-mysql.service -n 50 --no-pager所有docker容器都没启动curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh | CUBE_PVM_ENABLE1 MIRRORcn bash 后docker没有启动起来Docker 的“内容信任”Content Trust功能与 CubeSandbox 镜像不兼容导致的。我们可以通过临时关闭这个功能来解决。export DOCKER_CONTENT_TRUST0cube-egress没有启动查看日志journalctl -u cube-sandbox-cube-egress.service -n 50 --no-pager日志中出现cube-egress-prepare.sh[178838]: install: invalid group: 8049cube-egress服务在启动时需要生成 CA 证书并尝试将生成的证书文件分配给 GID 为8049的用户组。但是您当前的系统中不存在 GID 为8049的用户组导致install命令执行失败服务不断崩溃重启。这通常是因为 CubeSandbox 的某些组件如cube-lifecycle-manager在 Docker 容器内运行时使用了特定的 GID而宿主机上没有预先创建对应的组。创建 GID 为 8049 的用户组sudo groupadd -g 8049 cube-egress重启cube-egress服务sudo systemctl restart cube-sandbox-cube-egress.service附加说明不能用snap安装docker因为CubeSandbox one-click 的cube-sandbox-mysql.service / redis.service里写死了Requiresdocker.serviceAfterdocker.service查询 systemctl list-units | grep -i dockersnap.docker.dockerd.service ← 有docker.service ← 没有❗移除方法# 1. 停并卸 Snap Docker systemctl stop snap.docker.dockerd.service snap remove docker # 2. 装官方 DockerUbuntu/Debian 示例 apt-get update apt-get install -y ca-certificates curl gnupg lsb-release mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable \ /etc/apt/sources.list.d/docker.list apt-get update apt-get install -y docker-ce docker-ce-cli containerd.io # 3. 确认 systemctl enable --now docker systemctl status docker --no-pager docker ps安装完docker后systemctl list-units | grep -i dockersys-devices-virtual-net-docker0.device loaded active plugged /sys/devices/virtual/net/docker0sys-subsystem-net-devices-docker0.device loaded active plugged /sys/subsystem/net/devices/docker0docker.service loaded active running Docker Application Container Enginedocker.socket loaded active running Docker Socket for the API已经存在docker.service loaded active runningdocker.socket loaded active running