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 SIG Apps プロジェクトで、新しいカスタムリソース Sandbox と、オプションの拡張機能を追加します。Sandbox は、安定したホスト名、永続ストレージ、ライフサイクル制御(一時停止、再開、削除)を備えた、単一のステートフルな Pod を表します。コントローラーはこれらの CR を監視し、必要に応じて gVisor や Kata Containers などの堅牢なランタイムを使用して、基盤となる Pod を作成します。拡張機能により、テンプレート化、ウォームプールの事前展開、クレームベースの割り当てが可能になります。

AI/ML ワークロードにとって重要な理由

多くの新しい AI ワークロード(LLM 生成コード、強化学習ループ、Jupyter ノートブック、評価サンドボックス)では、迅速に起動でき、再起動後も維持され、信頼できないコードを安全に実行できる、分離された長時間実行コンテナが必要です。通常の Deployment やサイズ 1 の StatefulSet でも近似できますが、組み込みの分離、休止状態、高速ウォームプールのセマンティクスが欠けています。Agent Sandbox は、既存の CI/CD および GitOps パイプラインに自然に適合する宣言型 API を提供し、次の機能を提供します。

  • 強力な分離 – Pod を gVisor や Kata などを使用する RuntimeClass にバインドできます。
  • 安定したアイデンティティとネットワーキング – 各サンドボックスには、永続的なホスト名と Service のようなアドレスが割り当てられます。
  • 永続ストレージ – PVC は Pod の再起動や休止後も存続します。
  • ウォームプールのプロビジョニング – サンドボックスを事前作成して、クレーマーが即座に実行可能な環境を取得できるようにします。これは、高スループットの RL トレーニングや評価に役立ちます。

これらの機能により、AI チームは、セキュリティや Kubernetes の利便性を犠牲にすることなく、多数の短命で信頼できないジョブを大規模に実行できます。

使用方法

  1. コントローラーと CRD をインストールします(単一の kubectl apply -f …sandbox-with-extensions.yaml または個別のコア/拡張マニフェスト)。オプションで、HTTP ルーティング用の Sandbox Router をインストールします。
  2. サンドボックスを作成します(またはウォームプールから取得する SandboxClaim)。実行する Pod 仕様を含む YAML を使用します。
  3. コントローラーは、選択した RuntimeClass(例:kata)を使用し、定義した任意の PVC を接続して Pod を作成します。
  4. サンドボックスには、安定したホスト名(my-sandbox)または Sandbox Router SDK(Go/Python)を介してアクセスします。SDK は、プログラムによる作成、クレーム、ライフサイクル操作のためのクライアントライブラリを提供します。
  5. 完了したら、サンドボックスを削除するか、コントローラーに休止させます。状態は後で再開できるように保持されます。

対象読者

  • 信頼できない LLM 生成コードや RL エージェントを安全に実行する必要があるサービスを構築している AI プラットフォームエンジニア。
  • GitOps で管理される再現可能で永続的なノートブック環境を必要とする データサイエンティスト。
  • 単一コンテナのワークロードに対して強力な分離を維持しつつ、完全な VM に代わる軽量な代替手段を探している Kubernetes オペレーター。
  • 各ジョブに高速で分離された実行環境を必要とする CI/CD パイプラインの開発者。

成熟度と活動

  • 最初の安定版リリース v1.0.2(README 時点) – バージョン管理された CRD とコントローラー。
  • プログラムによる対話のための Go および Python SDK を提供。
  • 活発な SIG Apps コミュニティ、貢献ガイドライン、公開ロードマップ。
  • セキュリティモデルが文書化されています(脅威モデル、RuntimeClass による分離)。

クイックスタートスニペット

# コアと拡張機能をインストール
kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/latest/download/sandbox-with-extensions.yaml

# サンドボックスを作成
cat <<EOF | kubectl apply -f -
apiVersion: agents.x-k8s.io/v1beta1
kind: Sandbox
metadata:
  name: my-sandbox
spec:
  podTemplate:
    spec:
      containers:
      - name: app
        image: python:3.11-slim
        command: ["python", "-m", "http.server", "8080"]
EOF

# 確認
kubectl get sandbox my-sandbox -o yaml

結論

Agent Sandbox は、ステートレスな Deployment と完全な VM の間のニッチを埋める、本番グレードの本物の Kubernetes 拡張機能です。分離されたステートフルなシングルトンワークロードに焦点を当てているため、安全で迅速に利用可能な実行環境を必要とする最新の AI/ML ワークロードに自然に適合します。

関連

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