このプロジェクトについて

Agent Sandboxは、安定したアイデンティティと永続ストレージを備えた、分離された長時間実行の単一コンテナ環境を必要とするワークロード向けに、`Sandbox` Custom Resource Definitionとコントローラーを定義するKubernetesオペレーター形式のプロジェクトです。これは、ステートレスなレプリケートPodを対象とするKubernetes Deploymentと、専用のシングルトンサンドボックス抽象化ではなく番号付きレプリカを提供するStatefulSetの間に位置することを意図しています。 中核の`Sandbox`リソースは1つのステートフルPodを管理します。文書化されている機能には、安定したホスト名とネットワークアイデンティティ、再起動をまたいで存続できる永続ストレージ、作成、スケジュール削除、一時停止、再開などのコントローラー管理のライフサイクル操作が含まれます。ユーザーはPodテンプレートを通じてPodを定義し、結果として得られるサンドボックスにその安定したホスト名を通じてアクセスできます。 このプロジェクトは、コンテナ分離ランタイムではなく、明示的にサンドボックスオーケストレーターです。`RuntimeClass`を通じて安全なサンドボックスランタイムを使用するようにKubernetes Podを構成し、低レベルのカーネルおよびネットワーク分離をgVisorやKata Containersなどのプロジェクトに委任します。これにより、適切なランタイムと組み合わせた場合にマルチテナントまたは信頼できないコードのシナリオに適しますが、セキュリティ境界は選択されたランタイムとKubernetes構成に委ねられます。 オプションの拡張モジュールは、より高レベルのAPIを追加します。 - `SandboxTemplate`は、類似したサンドボックスの再利用可能な構成を定義します。 - `SandboxClaim`は、すべての基盤構成の詳細を公開することなく、場合によってはウォームプールからサンドボックスを要求します。 - `SandboxWarmPool`は、より高速な割り当てのために事前にウォームされたサンドボックスを維持します。 アーキテクチャはKubernetesコントローラーパターンに従います。ユーザーはSandbox、Claim、Template、またはWarmPoolカスタムリソースを作成し、コントローラーがそれらのオブジェクトをPodやその他のKubernetesリソースに調整します。READMEのアーキテクチャ図は、クレームがウォームプールからサンドボックスを採用し、ウォームプールがテンプレートを参照する様子を示しています。 インストールは、`kubectl`で適用されるリリースマニフェストとして提供されます。標準マニフェストはコアコンポーネントと拡張コンポーネントの両方をインストールし、個別のマニフェストではコアのみのインストールとオプションの拡張が可能です。READMEはまた、Kustomizeを使用したソースからのマニフェストのレンダリング、Helmチャート、CRDとコントローラーデプロイメントの検証コマンド、アンインストール手順についても文書化しています。CRDを削除すると、そのカスタムリソースがカスケード削除されることを警告しています。 プログラムによるアクセスは、GoおよびPython SDKを通じてサポートされています。Go SDKは`go get sigs.k8s.io/agent-sandbox/clients/go/sandbox`でインストールされ、Python SDKは`k8s-agent-sandbox`として公開されています。オプションのSandbox RouterはHTTPリバースプロキシであり、SDKまたは外部クライアントからサンドボックスPodへトラフィックをルーティングできます。これには、直接のPodポートフォワーディングが利用できない環境も含まれます。 文書化されているユースケースには、LLM生成コードを実行する分離されたAIエージェントランタイム、SWE-benchやR2E-Gymワークロードなどの強化学習および評価ループ、永続的な開発者環境、Jupyter形式のノートブックセッション、研究ツール、小規模なステートフル単一Podサービスが含まれます。望ましい長期的特性には、深いハイバネーション、ネットワーク接続時の自動再開、効率的なエラスティックストレージ、サポートされている場合のランタイム支援メモリ共有、より豊富なアイデンティティと接続性、アプリケーションおよびエージェントによるプログラム的な利用が含まれます。 このプロジェクトはKubernetes SIG Appsの下で開発され、Apache-2.0ライセンスです。高度な構成のドキュメントでは、API QPSやワーカー数などのスケールと並行性のチューニングを扱い、別の脅威モデルではセキュリティ境界と緩和策について説明しています。