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를 제공하면서 다음을 제공합니다:

  • 강력한 격리 – gVisor, Kata 등을 사용하는 RuntimeClass에 Pod를 바인딩할 수 있습니다.
  • 안정적인 ID 및 네트워킹 – 각 샌드박스는 영구적인 호스트 이름과 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
  • 프로젝트
  • 프로젝트
  • 프로젝트