成熟的 AI Agent 如何安全运行在 Kubernetes 上
前言
随着 AI Agent 从实验环境逐步进入生产系统,企业和开发团队面临的不再只是如何构建 Agent,而是如何让它们在 Kubernetes 环境中安全、稳定且高效地运行。
要实现这一目标,三个关键能力不可或缺:
隔离(Isolation):防止 Agent 的执行行为影响宿主机或其他工作负载。
安全(Security):通过策略执行与权限控制,确保 Agent 只能在授权范围内运行。
扩展(Scale):确保 Agent 在需要时能够及时启动并提供服务,同时有效利用基础设施资源。
如果缺少这些能力,就难以在受控环境中可靠部署 Agent,也无法充分保证策略执行和运行可用性。将kagent 作为 Agent 运行时,结合 Agent Substrate 提供的底层沙箱环境,可以为生产级 Agent 工作负载提供上述能力。kagent 支持声明式 Agent,同时也支持自带 Agent(Bring Your Own Agent,BYO Agent),包括基于 LangGraph、Google ADK 等框架构建的 Agent。本文将介绍 AI Agent 沙箱隔离的核心概念、Agent Substrate 的工作机制,以及如何结合 kagent 在 Kubernetes 中部署和使用沙箱化 Agent。
前置条件
如果你希望跟随本文进行实际操作,需要准备:
一个 Kubernetes 集群,本地的 kind 或 Minikube 集群也可以
如果暂时没有 Kubernetes 集群,也可以先从原理层面理解本文内容,等集群准备就绪后再进行实践。

图 1:Kubernetes 节点架构示意图
从整体上理解智能体沙箱
如果你启动 Docker 或其他喜欢的容器引擎,创建一个容器并在其中运行工作负载,从技术上说,这个工作负载已经处于“沙箱”中。然而,这一层级的沙箱隔离几乎形同虚设:入站和出站流量完全开放,工作负载可以向任意目标发送数据包,也没有任何强制执行的策略。
当然,可以通过网络策略、网络分段、路由规则等方式收紧这些边界,但这并不能改变沙箱机制整体上天然具有“扁平化”特征这一事实。
安全、有效地为智能体建立沙箱,意味着:
-
不可信的智能体代码不能逃逸到宿主机环境,也不能危及底层基础设施。
-
尽量缩小 Harness(智能体执行框架)的潜在影响范围。
-
持有模型输出、可能的凭据以及工具调用的智能体,始终处于隔离边界之内。
-
为智能体创建快照,使其能够知道从哪里继续执行,也就是保留状态所在的位置。
-
多租户环境中的智能体多路复用,即将流量路由到多个智能体,必须具备隔离和明确的边界。
要妥善实现上述要求,就需要能够在硬件和软件两个层面隔离智能体,并在智能体流量到达目标时,通过 AI 网关强制执行策略。
Agent Substrate 在其中发挥什么作用?
容器隔离,以及这一层面上的软件隔离,其边界止于内核。所有工作负载都在该内核所提供的用户空间中运行。这对某些场景可能已经足够,但隔离是如何实现的仍然很重要。客户端如何将请求路由到智能体,以及由哪些中间组件来完成路由,才是决定隔离效果的关键。
这正是 Agent Substrate 发挥作用的地方。

图 2:Agent Substrate
在 Agent Substrate 中,所有智能体都运行在 Worker 中,而 Worker 本质上是 Pod。智能体通过 Actor 承载,Actor 则由 ateapi(Agent Substrate 的控制平面)管理。其隔离能力来自软件和硬件两个层面:软件级隔离使用 gVisor,硬件级隔离使用 microVM。

图 3:快照存储,沿用原文编号
在软件级隔离中,隔离后的工作负载运行在用户空间内,使用一个名为 Sentry 的专用用户态应用内核来拦截和处理系统调用。microVM 中的客户机操作系统或虚拟机,则借助硬件虚拟化扩展,直接运行在物理 CPU 核心上。是否采用用户空间或命名空间中的运行方式,也就是软件级隔离,是由 gVisor 这类系统作出的设计选择。
在 kagent 中使用 Substrate
前面介绍了为什么需要为智能体建立沙箱,以及相关的架构、设计和系统选择。接下来将通过 kagent 与 Agent Substrate 进行实际操作。
二者的交互关系是:kagent 充当运行时,Agent Substrate 则作为底层平台,帮助实现并提供沙箱能力。如果不使用 kagent,与 Agent Substrate 交互的实际入口基本只有编程调用,例如使用 curl 与 Actor 交互。kagent 则让你能够通过行业熟悉的方式——图形界面和声明式配置——与运行在 Substrate Actor 中的智能体交互。
安装与配置
安装 kagent v1.0 和 Agent Substrate 需要几个步骤,包括:
-
配置 kubectl-ate,以便通过命令行与 Agent Substrate 交互。
-
安装 Agent Substrate。
-
安装 kagent。
逐步操作说明可参阅官方安装指南。
安装并运行后,你会看到:默认通过 Helm 安装 kagent 时,会创建一个 WorkerPool,其中包含两个 Worker(Pod)。这个 WorkerPool 由 Helm Chart 中的 substrateWorkerPool.create=true 配置创建。
通过编程方式创建智能体
安装 kagent 和 Agent Substrate 后,就可以创建智能体(Actor)和智能体模板。AgentTemplate 类似于一份“黄金镜像”——尽管“镜像”这个说法可能有些重——其中包含智能体的配置,可在部署多个智能体时复用。
Harness 则对应 Actor(智能体)本身。它既可以是 Codex、Claude Code 等执行框架,也可以是使用 LangGraph 等框架构建的自带智能体。
运行以下命令,通过 kagent CRD 以声明式方式创建 Harness 和 AgentTemplate:
kubectl apply -f - <<EOF
apiVersion: kagent.dev/v1alpha3
kind: Harness
metadata:
name: kagent
namespace: kagent
spec:
kagent: {}
workload:
image: PATH_TO_YOUR_AGENT_IMAGE
substrate:
workerPoolRef:
name: kagent-default
snapshotPolicy:
location: gs://ate-snapshots-PATH_TO_YOUR_SNAPSHOTS
allowedAgentTemplates:
selector:
matchLabels:
kagent.dev/harness: kagent
---
apiVersion: kagent.dev/v1alpha3
kind: AgentTemplate
metadata:
name: assistant
namespace: kagent
labels:
kagent.dev/harness: kagent
spec:
modelConfig:
name: default-model-config
description: A substrate-backed assistant used to verify this main build.
systemPrompt: You are a helpful assistant running on kagent.
EOF
部署后,你会在 kagent 中看到运行中的智能体及其模板。

图 3:kagent 中的智能体
通过界面创建智能体
除了声明式配置,也可以通过界面创建智能体。
-
在界面中打开 Agents 面板。
-
点击紫色的 + New template 按钮。
随后即可像上一节的 YAML 配置一样,定义模板。
-
通过紫色的 + New Harness 入口进入 Harness 配置。

图 4:在 kagent 中新建 Harness
在这里,可以像前一节使用声明式配置时一样,指定 Actor/智能体部署到哪个命名空间、名称、运行时适配器,以及镜像所在位置。
使用沙箱化智能体
打开 Agents 标签页后,可以看到 assistant 智能体。
接着切换到 Substrate 标签页。注意界面显示正在运行的 Actor 数为 0/8:这是因为 Actor 只会在存在活跃会话时运行,这也体现了 Agent Substrate 对硬件资源的高效使用。

图 5:kagent 的 Substrate 页面
然后,打开智能体,输入任意提示词。

图 6:打开智能体并输入提示词的示例
此时会看到 Actor 数变为 0/9。原因是,新建会话会启动一个新的 Actor;会话完成后,这个 Actor 就会停止运行。这里的会话,是指你向智能体提出请求并由它作出响应的这一过程。
如果再打开一个新会话并输入提示词,界面会显示 0/10。如果继续使用已有会话,Actor 数量则不会变化,因为仍然是同一个会话。这一点很重要:表面上可能看起来“每次使用智能体都会启动一个新 Actor,这会带来大量资源管理工作”,但实际上只有新建会话时才会出现这种情况。
总结
本文介绍了沙箱为何重要、推动相关技术发展的关键项目,以及如何以 Agent Substrate 作为沙箱平台与架构,在 kagent 中部署 Actor。
对于工程团队和企业而言,具备隔离、保护、治理和控制智能体的能力,是明确智能体能做什么、不能做什么的关键;而这也正是当下许多组织部署智能体时面临的重要障碍。

结合 kagent 与 Agent Substrate,实现 AI Agent 的隔离、安全与弹性扩展~
参考资料:
- CNCF 官方原文:Isolation. Security. Scale. https://www.cncf.io/blog/2026/10/26/isolation-security-scale/
- kagent v1.x 官方安装指南 https://kagent.dev/docs/kagent/1.x/setup/installation/
- Agent Substrate 架构文档 https://kagent.dev/docs/kagent/1.x/about/architecture/agent-substrate/
- Agent Substrate 沙箱隔离文档 https://kagent.dev/docs/kagent/1.x/about/substrate-runtime/sandboxing/
- kagent GitHub 仓库 https://github.com/kagent-dev/kagent
更多推荐
所有评论(0)