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 객체인 Deployment(무상태) 또는 StatefulSet(번호가 매겨진 집합)은 장기간 실행되는 컨테이너에 안정적인 정체성과 지속성 스토리지를 필요로 하는 사용 사례(예: 신뢰할 수 없는 코드를 안전하게 실행해야 하는 AI 에이전트 런타임)에 너무 복잡하고 부담스럽습니다. 이 문제를 해결합니다.

작동 방식

이 프로젝트는 Sandbox 커스텀 리소스 정의(CRD)와 단일 포드의 라이프사이클을 관리하는 컨트롤러를 도입합니다. 이 포드는 안정적인 호스트명과 네트워크 정체성을 갖습니다. 저수준의 컨테이너 격리는 Kubernetes RuntimeClass를 통해 gVisor 또는 Kata Containers와 같은 안전한 "Sandbox Runtimes"에 위임되어 강력한 커널 및 네트워크 격리를 보장합니다.

관리 확장성을 위해 다음 확장 기능을 포함합니다:

  • SandboxTemplate: 여러 유사한 사전을 생성하기 위한 재사용 가능한 구성 정의.
  • SandboxWarmPool: 시작 지연 시간을 줄이기 위해 미리 워밍업된 사전 풀을 유지합니다.
  • SandboxClaim: 사용자가 웜풀에서 사전을 요청하고 채택할 수 있도록 합니다.

대상 사용자

  • AI 개발자: LLM이 생성한 코드를 안전하고 격리된 환경에서 실행해야 하는 AI 에이전트를 개발하는 사람.
  • 플랫폼 엔지니어: 클라우드 개발 환경이나 지속적인 노트북 세션(예: Jupyter)을 제공하는 사람.
  • DevOps 엔지니어: StatefulSet의 부담 없이 단일 인스턴스 상태 유지형 서비스(예: 빌드 에이전트)를 호스팅해야 하는 사람.

주요 특징

  • 강력한 격리: 신뢰할 수 없는 코드를 실행할 때 보안을 강화하기 위해 gVisor 및 Kata Containers와 통합.
  • 안정된 정체성: 각 사전이 일관된 호스트명과 네트워크 정체성을 갖도록 보장.
  • 라이프사이클 관리: 워크로드의 생성, 스케줄된 삭제, 일시 정지, 재개를 지원.
  • 개발자 친화적: Go 및 Python SDK를 제공하여 Sandbox API와 프로그래밍 방식으로 상호작용할 수 있도록 합니다.

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트