更新时间:2025-08-19 GMT+08:00

kagent插件

Kagent是专为DevOps和平台工程师设计的开源编程框架,将强大的AI代理功能引入Kubernetes集群,自动化执行运维任务、排查故障并优化云原生环境中的工作流,帮助团队更高效地解决复杂的技术挑战。其主要提供以下功能:

  • 自动化运维:通过AI代理自动处理常见故障(如Pod崩溃、网络策略冲突),减少人工干预。
  • 知识沉淀:将团队经验转化为可复用的诊断流程和策略,避免重复劳动。
  • 协作平台:提供自定义代理开发框架,支持共享针对Ingress、CRD等场景的运维方案,加速问题响应。

CCE Standard/Turbo集群深度集成Kagent能力,提供开箱即用的kagent插件,支持一键部署生产级AI运维代理框架,实现智能化的集群管理体验。

基本概念

表1 插件基本概念

概念

定义

作用

代理(Agent)

AI Agent是一种基于人工智能的应用程序,能够以自然语言与用户交互,并代表用户执行任务。

  • 自然语言交互:允许用户通过日常语言与复杂系统交互,无需记忆命令或查阅文档,显著提升非专家用户的操作效率。
  • 自动化执行:将重复性任务(如日志分析、配置检查、扩缩容)转化为自动化流程,减少人工操作错误。
  • 知识固化与协作:将专家经验编码为可共享的Tool和代理指令,形成团队知识库,避免经验流失或重复劳动。

工具(Tool)

Tool是AI Agent用于与环境交互的可执行函数或API,赋予Agent执行具体操作的能力,不仅是生成文本。

  • 环境交互:允许Agent执行实际任务,如查询数据、修改配置、触发操作,而不仅是“对话”。
  • 扩展Agent能力边界:通过Tool集成,Agent可以突破LLM的纯文本限制,直接操作真实系统。
  • 执行安全可控:工具通常包含权限校验和输入过滤,避免危险操作。

更多概念请参见Kagent

前提条件

  • 已安装v1.28及以上版本的CCE Standard/Turbo集群。
  • 已使用AI推理框架插件部署推理服务。

约束与限制

  • 由于kagent服务启动需即时安装,请确保集群内的Pod访问公网。您可以为集群配置SNAT规则以保证Pod能够访问公网,配置SNAT规则将涉及一定费用,具体请参见NAT网关价格计算器
  • 该插件当前正处于上线阶段,已发布区域请以控制台实际为准
  • 该插件处于公测阶段,您可体验最新插件特性,但需要注意该版本的稳定性未得到完全的验证,不适用于CCE服务SLA

安装插件

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“插件中心”,在右侧找到kagent插件,单击“安装”
  3. 在安装插件页面,进行相关配置。

    表2 插件规格配置

    参数

    参数说明

    选择版本

    表示插件版本,请按需选择。

    插件规格

    当前仅支持“默认”规格。

    openaiApiUrl

    表示推理服务地址Url,见前提条件

    openaiApiKey

    表示推理服务访问鉴权key,用于鉴权访问,见前提条件

    openaiModel

    表示推理服务中使用的模型名称,见前提条件

  4. 配置完成后,请在右下角单击“安装”。kagent插件状态变为“运行中”时,则说明安装成功。

组件说明

表3 kagent 组件

容器组件

说明

资源类型

kagent

kagent由以下内容组成:

  • Controller:表示Kubernetes控制器,用于监视kagent自定义资源,并创建运行代理所需的资源。
  • UI:用于提供管理和使用AI代理的Web界面,以便进行可视化操作。
  • Engine:是运行代理和工具的Python应用程序,使用Autogen构建。

Deployment

使用示例

本示例将展示如何通过kagent插件构建自定义agent

  1. 在已有的ECS中安装kubectl,并使用kubectl连接集群,具体操作请参见通过kubectl连接集群
  2. 执行以下命令,创建节点访问类型Service的YAML文。通过该Service,可以访问命名空间kube-system中的工作负载cceaddon-kagent,其访问端口和容器端口均设置为80。

    vim kagent-svc.yaml

    文件内容如下:

    apiVersion: v1
    kind: Service
    metadata:
      name: kagent-svc
      namespace: kube-system
      labels:
        app.kubernetes.io/instance: cceaddon-kagent
        app.kubernetes.io/name: kagent
    spec:
      ports:
        - name: ui
          protocol: TCP
          port: 80
          targetPort: 80
          nodePort: 30371  # 节点端口
        - name: app
          protocol: TCP
          port: 8081
          targetPort: 8081
          nodePort: 30372  # 节点端口
      selector:
        app.kubernetes.io/instance: cceaddon-kagent
        app.kubernetes.io/name: kagent
      type: NodePort
      sessionAffinity: None
      externalTrafficPolicy: Cluster
      ipFamilies:
        - IPv4
      ipFamilyPolicy: SingleStack
      internalTrafficPolicy: Cluster

  3. 执行以下命令,创建上述Service。

    kubectl apply -f kagent-svc.yaml

    回显结果如下:

    service/kagent-svc created

  4. 执行以下命令,查看Service的IP地址。

    kubectl get node -owide

    回显结果如下:

    NAME            STATUS                     ROLES    AGE        INTERNAL-IP     EXTERNAL-IP     
    192.168.0.211   Ready                      <none>   12d        192.168.0.211   xx.xx.xx.xx  
    192.168.0.32    Ready,SchedulingDisabled   <none>   7d16h      192.168.0.32    <none>          
    192.168.1.173   Ready,SchedulingDisabled   <none>   12d        192.168.1.173   xx.xx.xx.xx   

  5. 在浏览器中输入http://<任一节点EIP>:<节点端口>/,访问kagent插件的UI界面。

    图1 UI界面

  6. 单击“New Agent”,创建agent实例,默认使用安装插件时所填入的推理服务,具体参数示例请参见图2

    图2 创建新agent

  7. 配置完成后,请单击“Create Agent”。创建完成后,即可使用该agent实例。

版本说明

表4 kagent插件版本记录

插件版本

支持的集群版本

更新特性

社区版本

0.1.15

v1.28

v1.29

v1.30

v1.31

CCE Standard/Turbo集群支持使用kagent插件

v0.1.15