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) 1 つまたは複数のノード間でサンドボックスをオーケストレーションします。
Kata Containers コンテナを小さな VM に変換し、強力な分離を実現します。
Firecracker 超高速マイクロ VM ブート(kfd バックエンド経由で使用)。
QEMU Longhorn 対応ディスクを備えたフル機能 VM オプション(kql バックエンド)。
Longhorn QEMU ベースのサンドボックス用のレプリケーション PVC ストレージ。スナップショットとノード間移動を可能にします。
k7d Katakate 独自のマイクロ VM ランタイムデーモン。カスタム KVM ベースの VMM を提供し、超高速なコピーオンライト(CoW)フォーク(約 5 ms)を実現します。
Devmapper thin-pool Firecracker バックエンド用の効率的なブロックデバイスストレージ。
Cilium(オプション) ネットワークポリシーの強制と、オプションの Hubble によるオブザーバビリティ。

バックエンド – インストール時またはサンドボックス作成時に 1 つを選択します:

  • kfd – Kata + Firecracker + devmapper(高速ブート、永続ストレージなし)。
  • kql – Kata + QEMU + Longhorn(永続的、スナップショット可能なディスク)。
  • k7d – Katakate カスタム KVM ランタイム(高速 CoW フォーク、VM 内 Docker サポート)。
  • k7d-fck7d に Firecracker ジェイラーを追加。

パフォーマンスのハイライト(Hetzner AX41 ノードでの中央値):

  • 作成 → 準備完了: k7d/k7d-fc で 2.1 秒、kql で 17.1 秒。
  • ウォームフォーク(ディスク + メモリ CoW): VMM レベルで約 5 ms、k7d のエンドツーエンドで約 2 秒。
  • 一時停止 / 再開: k7d(メモリ保持)で 1 秒未満、kql で数秒。

操作方法

  • CLI (k7) – APT パッケージ(apt install k7)でインストール可能。コマンドには installcreatelistdeleteforkpausesnapshot、および API 制御(api enable/disable)が含まれます。
  • HTTP API – クラスタ上で k7-api サービスとして自動的にデプロイされます(デフォルトで NodePort 31007)。TLS は自己署名 CA で設定されますが、実際の証明書を使用するか、Caddy サイドカー経由で Let’s Encrypt を使用することもできます。
  • Python SDK (k7-sdk) – 同期または非同期で使用できる pip インストール可能なクライアント。CLI のアクション(createexecforklistdelete)をミラーリングします。

典型的なワークフロー

  1. ノードの準備 – Ubuntu 24.04、KVM アクセス権、thin-pool 用の予備の生ディスク、Ansible、Docker。
  2. k7 install --backend kfd,kql,k7d を実行 – プレイブックが K3s、Kata、Firecracker、QEMU、Longhorn、および k7d デーモンをプロビジョニングします。
  3. CLI の設定 – 生成された CA 証明書をコピーし、API URL とキーを設定します。
  4. サンドボックスの作成k7.yaml(イメージ、リソース、オプションのエグレスホワイトリスト、事前スクリプト、環境ファイル)を指定し、k7 create を実行します。
  5. コードの実行k7 exec <sandbox> -- '<cmd>' または SDK の exec メソッドを使用します。
  6. フォーク / スナップショット – 高速ブランチングのためのウォーム 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 から直接引用しており、追加の機能は推測されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト