在 Kubernetes 上运行任意 AI 代理:一步一步
Source: Dev.to
前置条件
要跟随本指南操作,您需要:
- 一个已安装 kagent 的 Kubernetes 集群。如果您尚未安装 kagent,请参阅此处的操作指南。
- Python 3.10 或更高版本。
- 已安装 Docker Desktop(或 Docker 引擎)以构建容器镜像。
什么是 BYO 代理
BYO(Bring Your Own,自己带来)意味着您可以使用 kagent 支持的任何提供商创建代理。无论您是使用 CrewAI、ADK、LangChain 或其他框架用 Python 编写代理,kagent 都可以导入它。唯一额外的步骤是将代理容器化,这在 Dockerfile 中非常直接(请参见 创建代理 部分的示例)。
构建代理
以下章节将带您使用代理开发工具包(ADK)构建自定义代理,并使用现有代理作为参考。
创建代理
-
安装 Google ADK 库(如有需要请使用
pip3):pip install google-adk -
脚手架一个新的 ADK 代理:
adk create NAME_OF_YOUR_AGENT这将在
adk/NAME_OF_YOUR_AGENT目录下创建一个入门模板。 -
运行脚手架生成的代理以验证其工作正常:
cd adk/NAME_OF_YOUR_AGENT && adk run NAME_OF_YOUR_AGENT
使用已有代理
为简化流程,您可以从预构建的代理仓库开始。
-
克隆示例仓库并进入 ADK 示例目录:
git clone https://github.com/thenjdevopsguy/agentic-demo-code.git cd agentic-demo-code/adk/troubleshoot-agent -
查看提供的
Dockerfile:# STAGE 1: base image ARG DOCKER_REGISTRY=ghcr.io ARG VERSION=0.7.4 FROM $DOCKER_REGISTRY/kagent-dev/kagent/kagent-adk:$VERSION WORKDIR /app COPY troubleshootagent/ troubleshootagent/ COPY pyproject.toml pyproject.toml COPY uv.lock uv.lock COPY how-it-works.md how-it-works.md RUN uv sync --locked --refresh CMD ["troubleshootagent"] -
构建容器镜像:
docker build . -t troubleshootagent:latest如果出现关于
uv sync的错误,请先生成锁文件:uv lock构建成功后您会看到类似的输出:

-
将镜像推送到镜像仓库(Docker Hub 免费;示例使用 GitHub Container Registry):
docker tag troubleshootagent:latest adminturneddevops/troubleshootagent:latest docker push adminturneddevops/troubleshootagent:latest如果您不想推送镜像,也可以在下一步中直接引用
adminturneddevops/troubleshootagent:latest,因为该镜像是公开的。
在 Kubernetes 上部署代理
镜像准备好后,使用 kagent 的 CRD 以声明式方式部署它。
-
设置大语言模型(LLM)凭证(示例使用 Google Gemini;请根据需要替换为您的提供商):
export GOOGLE_API_KEY=YOUR_API_KEY_HERE -
创建 Kubernetes Secret 来存储 API 密钥:
apiVersion: v1 kind: Secret metadata: name: kagent-google namespace: kagent type: Opaque stringData: GOOGLE_API_KEY: $GOOGLE_API_KEY应用 Secret:
kubectl apply -f- -
定义代理自定义资源:
apiVersion: kagent.dev/v1alpha2 kind: Agent metadata: name: troubleshoot-agent namespace: kagent spec: description: Platform Engineering troubleshoot expert. type: BYO byo: deployment: image: adminturneddevops/troubleshootagent:latest env: - name: GOOGLE_API_KEY valueFrom: secretKeyRef: name: kagent-google key: GOOGLE_API_KEY应用代理清单:
kubectl apply -f- -
验证代理 Pod 是否在
kagent命名空间中运行:kubectl get pods -n kagent您应该会看到类似的 Pod:

现在,代理已经部署完成,可在 kagent 中使用。