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;未推斷任何額外功能。
相關
- 專案
- 專案
- 專案
- 專案
- 專案