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 并创建底层 Pod,可选地使用诸如 gVisor 或 Kata Containers 之类的加固运行时。扩展增加了模板化、暖池预创建和基于声明的分配。
为什么它对 AI/ML 工作负载很重要
许多新兴的 AI 工作负载(LLM 生成的代码、强化学习循环、Jupyter 笔记本、评估沙箱)需要隔离的、长时间运行的容器,这些容器可以快速启动、在重启后保持运行并安全地运行不可信代码。普通的 Deployment 或大小为 1 的 StatefulSet 可以近似实现这一点,但它们缺乏内置的隔离、休眠和快速暖池语义。Agent Sandbox 提供了一个声明式 API,自然适合现有的 CI/CD 和 GitOps 管道,同时提供:
- 强大的隔离性 – 您可以将 Pod 绑定到使用 gVisor、Kata 等的 RuntimeClass。
- 稳定的身份和网络 – 每个沙箱获得一个永久的主机名和类似 Service 的地址。
- 持久化存储 – PVC 在 Pod 重启或休眠后仍能存活。
- 暖池预创建 – 预创建沙箱,使声明者立即获得可运行的环境,这对高吞吐量的强化学习训练或评估非常有用。
这些功能使 AI 团队能够大规模运行许多短命、不可信的任务,而不会牺牲安全性或 Kubernetes 的便利性。
如何使用
- 安装控制器和 CRD(单个
kubectl apply -f …sandbox-with-extensions.yaml或单独的核心/扩展清单)。可选地安装用于 HTTP 路由的 Sandbox Router。 - 创建沙箱(或从暖池中获取的
SandboxClaim),使用包含您要运行的 Pod 规范的 YAML。 - 控制器创建一个使用所选
RuntimeClass(例如,kata)并附加您定义的任何 PVC 的 Pod。 - 通过其稳定的主机名(
my-sandbox)或 Sandbox Router SDK(Go/Python)访问沙箱,这些 SDK 提供了用于编程创建、声明和生命周期操作的客户端库。 - 完成后,删除沙箱或让控制器休眠它;状态将持久化以供后续恢复。
谁应该关注
- AI 平台工程师,他们构建的服务需要安全地运行不可信的 LLM 生成代码或强化学习代理。
- 数据科学家,他们希望通过 GitOps 管理可重现、持久的笔记本环境。
- 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 是一个真正的、生产级 Kubernetes 扩展,填补了无状态 Deployment 和完整虚拟机之间的空白。它专注于隔离、有状态、单实例工作负载,使其自然适合需要安全、快速可用执行环境的现代 AI/ML 工作负载。
相关
- 项目
- Dispatch
- 项目
- 项目
- 项目