Katakate/k7
Your own self-hosted infra for lightweight VM sandboxes to safely execute untrusted code. CLI, API, Python SDK. ⭐ Star it if you like it! ⭐
k7 – 面向 AI 计算的自托管安全 VM 沙箱
简介
- 一个开源平台(Apache-2.0),允许您大规模启动轻量级、隔离的虚拟机沙箱。它主要面向需要安全运行任意代码的 AI 智能体,但也可用于自定义无服务器工作负载、加固的 CI/CD 运行器或区块链执行层。
关键组件
| 组件 | 角色 |
|---|---|
| Kubernetes (K3s) | 在一个或多个节点上编排沙箱。 |
| Kata Containers | 将容器转换为小型 VM 以实现强隔离。 |
| Firecracker | 超快微型 VM 启动(通过 kfd 后端使用)。 |
| QEMU | 全功能 VM 选项(kql 后端),支持 Longhorn 后端磁盘。 |
| Longhorn | 用于基于 QEMU 的沙箱的复制 PVC 存储,支持快照和跨节点移动。 |
| k7d | Katakate 自有的微型 VM 运行时守护进程,提供基于自定义 KVM 的 VMM,支持超快的写时复制(CoW)分叉(约 5 毫秒)。 |
| Devmapper thin-pool | 用于 Firecracker 后端的块设备高效存储。 |
| Cilium(可选) | 网络策略执行和可选的 Hubble 可观测性。 |
后端 – 在安装或创建沙箱时选择其中一个:
kfd– Kata + Firecracker + devmapper(快速启动,无持久存储)。kql– Kata + QEMU + Longhorn(持久化、可快照的磁盘)。k7d– Katakate 自定义 KVM 运行时(快速 CoW 分叉,支持 VM 内 Docker)。k7d-fc–k7d加上 Firecracker 隔离器。
性能亮点(Hetzner AX41 节点上的中位数):
- 创建 → 就绪:
k7d/k7d-fc为 2.1 秒,kql为 17.1 秒。 - 热分叉(磁盘 + 内存 CoW):VMM 级别约 5 毫秒,
k7d端到端约 2 秒。 - 暂停 / 恢复:
k7d(保留内存)不到 1 秒,kql几秒。
交互方式
- CLI (
k7) – 可通过 APT 包安装(apt install k7)。命令包括install、create、list、delete、fork、pause、snapshot以及 API 控制(api enable/disable)。 - HTTP API – 自动部署为集群上的
k7-api服务(默认 NodePort 31007)。TLS 使用自签名 CA 设置;您可以插入真实证书或通过 Caddy 边车使用 Let’s Encrypt。 - Python SDK (
k7-sdk) – 可通过 pip 安装的客户端,支持同步或异步使用。它镜像了 CLI 的操作(create、exec、fork、list、delete)。
典型工作流
- 准备节点 – Ubuntu 24.04、KVM 访问权限、用于 thin-pool 的备用原始磁盘、Ansible、Docker。
- 运行
k7 install --backend kfd,kql,k7d– 剧本将配置 K3s、Kata、Firecracker、QEMU、Longhorn 和k7d守护进程。 - 配置 CLI – 复制生成的 CA 证书,设置 API URL 和密钥。
- 创建沙箱 – 提供
k7.yaml(镜像、资源、可选的出口白名单、前置脚本、环境文件)并运行k7 create。 - 执行代码 –
k7 exec <sandbox> -- '<cmd>'或使用 SDK 的exec方法。 - 分叉 / 快照 – 用于快速分支的热 CoW 分叉(
k7 fork),或使用 QEMU 后端进行仅磁盘快照。
安全态势
- 每个沙箱都在硬件隔离的 VM(Kata 或自定义
k7d)中运行。 - Firecracker 沙箱进一步受到 chroot 隔离;Kata 默认应用 seccomp 并丢弃所有 Linux 能力。
- 网络出口可以按沙箱进行白名单设置;可选的 Cilium 策略增加另一层保护。
- 该平台处于测试版并正在进行安全审查——对于高度敏感的工作负载请谨慎使用。
路线图亮点(来自 ROADMAP.md)
- 支持 ML 工作负载的 GPU 直通。
k7d-fc后端的高可用(HA)模式。- 更细粒度的策略工具和可观测性集成。
潜在用户
- 需要安全运行不受信任代码的 AI 智能体开发者(例如 LangChain ReAct)。
- 构建不依赖云提供商的私有无服务器平台的团队。
- 需要避免 Docker-in-Docker 风险的加固 CI/CD 运行器的组织。
- 需要 AI 驱动 dApp 执行层的区块链项目。
以上所有细节均直接取自仓库的 README;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目