kubernetes-sigs/agent-sandbox

agent-sandbox enables easy management of isolated, stateful, singleton workloads, ideal for use cases like AI agent runtimes and reinforcement learning (RL).

何を解決するか

Agent Sandbox は、Kubernetes 上で隔離された、状態保持型の単一コンテナワークロードを標準化された方法で管理する手段を提供します。通常の Kubernetes オブジェクト(例:Deployments(無状態)や StatefulSets(番号付きセット))は、長期間実行されるコンテナで安定したアイデンティティと永続ストレージを必要とするユースケース(例:信頼できないコードを安全に実行する必要がある AI エージェントランタイム)には扱いにくすぎます。このギャップを埋めます。

動作方法

このプロジェクトは Sandbox というカスタムリソース定義(CRD)と、1つのポッドのライフサイクルを管理するコントローラーを導入します。このポッドは安定したホスト名とネットワークアイデンティティを持ちます。低レベルのコンテナ隔離は、Kubernetes の RuntimeClass を通じて、gVisor や Kata Containers といった安全な「Sandbox Runtimes」に委譲され、強力なカーネルおよびネットワーク隔離を確保します。

スケーラビリティを実現するために、拡張機能も提供されています:

  • SandboxTemplate:複数の類似したサンドボックスを作成するための再利用可能な設定を定義します。
  • SandboxWarmPool:起動遅延を低減するため、事前にウォームアップされたサンドボックスのプールを維持します。
  • SandboxClaim:ユーザーがウォームプールからサンドボックスを要求・採用できるようにします。

対象ユーザー

  • AI開発者:LLM 生成コードを安全で隔離された環境で実行する必要がある AI エージェントを開発する人。
  • プラットフォームエンジニア:クラウド開発環境や永続的なノートブックセッション(例:Jupyter)を提供する人。
  • DevOpsエンジニア:StatefulSets のオーバーヘッドなしに、単一インスタンスの状態保持型サービス(例:ビルドエージェント)をホスティングする必要がある人。

主な特徴

  • 強力な隔離:gVisor や Kata Containers と統合し、信頼できないコードを実行する際のセキュリティを強化。
  • 安定したアイデンティティ:各サンドボックスに一貫したホスト名とネットワークアイデンティティを保証。
  • ライフサイクル管理:ワークロードの作成、スケジュール削除、一時停止、再開をサポート。
  • 開発者向け:Go および Python SDK を提供し、Sandbox API とのプログラム的連携を可能にします。

関連

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