Kagenti Operator
Kagenti Operator 是一个 Kubernetes 原生的 operator,能够注册、发现并保护作为普通 Kubernetes 工作负载运行的 AI agents 和 MCP 工具。它基于开源项目 kagenti/kagenti-operator 构建,可让你通过 Kubernetes Custom Resource Definitions (CRDs),以声明式方式将普通的 Deployment 转换为受管的 agent——并提供一致的标签、agent-to-agent (A2A) 发现以及可选的身份/安全 mesh。
概述
该 operator 提供以下 CRDs(API group agent.kagenti.dev):
- AgentRuntime:将目标工作负载(
Deployment或StatefulSet)注册为agent或tool。controller 会应用kagenti.io/type和app.kubernetes.io/managed-by标签,计算配置哈希,并且——在启用身份栈时——通过 AuthBridge webhook 触发 sidecar 注入。 - AgentCard:表示已发现的 agent。sync controller 会从工作负载的 Service 中获取该 agent 的 A2A Agent Card 并进行索引,同时支持可选的 JWS 签名验证和 SPIFFE 身份绑定。
- AuthorizationPolicy:应用级授权意图,operator 会将其转换为底层 mesh(Istio / Kuadrant)。
operator 本身作为一个 OLM operator 交付,其 operand 是一个单独的 Kagenti custom resource(API group kagenti.alauda.io)。安装 operator 并创建 Kagenti 资源后,会将 agent controllers、CRDs 和 admission webhooks 部署到集群中。
名为 agent-label-protection 的 ValidatingAdmissionPolicy 会阻止直接在 Deployment 或 StatefulSet 上设置 kagenti.io/type 标签——它只能由 operator 通过 AgentRuntime 应用。
关键特性
- 声明式 agent 注册:为
Deployment添加protocol.kagenti.io/a2a标签,并将其指向一个AgentRuntime;其余部分由 operator 管理。 - 动态 agent 发现:
AgentCard资源会自动创建并同步,因此 agents 可以相互发现。 - LLM 后端无关:agents 可与任何兼容 OpenAI 的 chat endpoint 通信,因此集群内的 AI InferenceService 可以作为模型后端。
- MCP 工具集成:将 Model Context Protocol servers 部署为
tool类型工作负载,由 agent 调用以扩展其能力。 - 可插拔身份与安全:可启用可选栈(SPIRE/SPIFFE mTLS、Keycloak、Istio),用于工作负载身份和零信任传输。
核心配置
在 AI 上,operator 提供一个 核心配置:已启用 agent 注册、动态发现(AgentCard)以及 MCP 工具集成,而身份/安全栈(SPIRE、Keycloak、Istio mTLS)默认禁用,因为它需要基础安装中不包含的组件。在此配置下:
- agent Pod 运行时不会注入 sidecar(只有你自己的容器)。
AgentRuntime会报告MTLSReady=False,原因是SPIREUnavailable——这是预期行为,不会阻止 agent 或 tool 功能。
当集群中已具备 SPIRE、Keycloak 和 Istio 后,即可启用身份栈。
使用场景
- Kubernetes 上的 agentic 应用:将 A2A agents 和 MCP tool servers 作为一等、可发现的工作负载运行。
- 自托管模型后端:使用由 AI InferenceServices 提供的模型来驱动 agent,而不是外部 LLM 提供商。
- 增强工具的 agents:通过 MCP servers 为 agent 扩展实时数据能力(天气、搜索、内部 API 等)。