Incus 脚本审阅与验收SWES · 技术记录

Incus 审阅 01|一台 VPS 拆成六台“小鸡”,到底拆出了什么

Incus 脚本审阅与验收 · 第 1 / 8 篇 一台服务器能启动六个 Debian,看起来像一次简单的数量扩容。真正值得记录的,是六个环境能否单独管理、网络是否互相影响、重装一台会不会伤到其他实例,以及资源用完时系统会怎样表现。这个系列围绕这些问题,拆解一套 Debian 12 与 Incus

Incus 脚本审阅与验收 · 第 1 / 8 篇

一台服务器能启动六个 Debian,看起来像一次简单的数量扩容。真正值得记录的,是六个环境能否单独管理、网络是否互相影响、重装一台会不会伤到其他实例,以及资源用完时系统会怎样表现。这个系列围绕这些问题,拆解一套 Debian 12 与 Incus 管理脚本。

宿主机与六个系统容器的关系

先说明这份记录能证明什么

本系列依据六份现存脚本、对应操作手册及官方资料编写。我们重新完成了 Bash 语法检查、内嵌 Python 语法检查和若干离线逻辑复现。原部署与重装手册明确写着:尚未在用户服务器完成端到端部署或破坏性重装验证。因此,本文中的架构是代码设计,验收表是需要实机填写的标准,不是已经获得的六台全绿报告。文件名里的 verified 不能代替测试证据。

这是系统容器,不是六台独立虚拟机

Incus 同时管理系统容器和虚拟机。这套脚本执行的是不带 --vm 的 incus launch images:debian/12,目标是系统容器。它适合获得完整的 Debian 用户空间、运行 systemd、安装 SSH 和普通 Linux 服务。容器共享宿主机内核;不能因此声称每台都有独立内核,或者拥有与独立 KVM 实例相同的隔离边界。Incus 官方容器与虚拟机说明

这里的“小鸡”是便于交流的昵称。对外说明环境时,应写“Incus Debian 系统容器”,这样读者不会误以为获得了六个独立公网 IP、独立硬盘或六份独占算力。

方案中的四个部件分别解决什么问题

部件

代码中的选择

要解决的问题

容器

vps1 到 vps6

分离系统、软件包和服务配置

网络

incusbr0

提供容器侧网络与出站路径

存储

incus-quota,Btrfs,池大小 12GiB

为根盘设置配额,并共享池空间

入口

宿主机 TCP 2201—2206

一个宿主机地址对应不同容器的 SSH

例如,连接宿主机的 2203 端口,预期进入 vps3 的 22 端口。这是端口分流,不是给 vps3 分配了新公网地址。业务端口由另一份管理脚本按需添加,部署脚本本身没有预先开放一整段业务端口。

六台的成本不能只看实例数量

单实例配置是 limits.cpu=1、limits.memory=256MiB、根盘上限 3GiB。CPU 参数不能被宣传成“独占一个物理核”。六台内存上限相加是 1536MiB,这个算式还没有算宿主系统、Incus、缓存、Docker、监控等开销。它既不表示启动后立即消耗这么多,也不能证明一台约 2GB 内存的宿主机可以稳定承载所有容器同时满载。

同样,六份 3GiB 上限相加是 18GiB,而存储池只有 12GiB。上限不是预留,池容量也不是从空气中增加的磁盘。升级软件、写日志、保留镜像和快照都会参与容量竞争。这个方案可以用于轻量实验,但扩容前必须观察实际工作负载,不能只把 COUNT=3 改成 COUNT=6 就宣称容量验证完成。

三台版到六台版,代码到底变化了什么

对现存两个部署脚本逐行比较,唯一差异是 COUNT=3 与 COUNT=6。这能证明它们采用同一套部署逻辑,不能证明六台版经过了新增的压力测试,也不能推断旧版曾有怎样的性能问题。

合理的扩展顺序是:先让一台容器完成完整验收,再扩到三台,观察并发更新、内存峰值与磁盘增长;最后增加到六台,重复同样测试。每一步保留版本、配置和结果,扩容才是可复查的演进过程。

本篇希望达到的效果

读完这一篇,应能画出“公网入口—宿主机代理—容器 SSH”和“容器—网桥—出口”的两条路径,算清共享资源,并知道哪些承诺不能从配置数字推出来。下一篇开始拆解部署顺序和根盘配额,重点回答:为什么创建成功还不等于部署完成。

依据与范围:本地 3 台、6 台部署脚本;Incus 实例配置选项。官方在线文档反映当前版本;本套脚本目标为 Debian 12 amd64 与 Incus 6.0 系列,实际执行前还应核对本机帮助与版本。

系列阅读目录

  1. 01|一台 VPS 拆成六台“小鸡”,到底拆出了什么

  2. 02|部署之前先算清楚,3GiB 根盘与 12GiB 存储池如何配合

  3. 03|容器能启动却不能联网,为什么要查 Docker 的转发规则

  4. 04|端口不是越多越好,让每个公开入口都有归属

  5. 05|只重装一台小鸡,保住的究竟是配置还是数据

  6. 06|菜单不再秒退之后,为什么还要检查 YAML 缩进和密码记录

  7. 07|Komari 显示在线以后,还要验证什么

  8. 08|怎样才算真正做好,把“完美结果”写成可复查的验收单

感谢阅读 · 保持好奇,认真记录。浏览更多文章 ↗