K8s 排障 Agent:从告警到根因到审批


文档摘要

K8s 排障 Agent:从告警到根因到审批 本节摘要:AWS 的 DevOps Agent 正式发布,Resolve AI 公开了 K8s 行动手册,NeuBird 演示了语义监控,Metoro 把 AI SRE 绑到了每服务 SLO。生产形态已定:告警 webhook 触发,Agent 读遥测、遍历 K8s 对象图、给根因假设排名,并把带审批按钮的简报发到 Slack。默认只读,每个修复都由人把关。本节就是那个 Agent,在 20 个合成事件上评估,并在三个共享案例上对照 AWS 的 Agent。你会学到为什么大部分功夫在定范围与安全,而非推理。 对应原课程:Phase 19 · Lesson 06 · (原英文 )。

K8s 排障 Agent:从告警到根因到审批

本节摘要:AWS 的 DevOps Agent 正式发布,Resolve AI 公开了 K8s 行动手册,NeuBird 演示了语义监控,Metoro 把 AI SRE 绑到了每服务 SLO。生产形态已定:告警 webhook 触发,Agent 读遥测、遍历 K8s 对象图、给根因假设排名,并把带审批按钮的简报发到 Slack。默认只读,每个修复都由人把关。本节就是那个 Agent,在 20 个合成事件上评估,并在三个共享案例上对照 AWS 的 Agent。你会学到为什么大部分功夫在定范围与安全,而非推理。

对应原课程:Phase 19 · Lesson 06 · devops-troubleshooting-agent(原英文 phases/19-capstone-projects/06-devops-troubleshooting-agent/docs/en.md)。

学习目标

阅读完本节,你应当能够:

  1. 构建 K8s 知识图谱:节点是 K8s 对象 + 遥测源,边编码归属、调度、观测关系。
  2. 实现默认只读的 RBAC 面,破坏性工具放在审批门后的独立 MCP 服务。
  3. 用 LangGraph 三节点 Agent(采样/遍历/假设)从受影响对象根因排障。
  4. 用证据评分(新近性 × 特异性 × 图路径长度倒数 × 引用数)给假设排名。
  5. 实现 Slack 审批卡:Agent 不在人单击前执行任何破坏性动作。
  6. 记录「考虑过 vs 执行了」的只追加审计日志,捕获近失(near-miss)。

一、问题与直觉

2025~2026 年的 SRE 叙事变成了「AI Agent 分诊事件,人审批修复」。AWS DevOps Agent、Resolve AI、NeuBird、Metoro、PagerDuty AIOps 都在生产里跑这个形态。Agent 读 Prometheus 指标、Loki 日志、Tempo trace、kube-state-metrics,以及一张 K8s 对象知识图谱,在 5 分钟内产出带遥测引用的根因假设排名。它从不在没有 Slack 显式人工审批的情况下执行破坏性命令。

大部分难活在定范围与安全,不在推理。Agent 需要一个默认只读的 RBAC 面、一个加固的 MCP 工具服务、一份「每个被考虑 vs 被执行的命令」的审计日志。它需要知道何时超出了自己的能力边界并升级。而且它得跑得足够便宜,免得 OOM-Kill 级联产生 5000 美元的 Agent 账单。

二、从零实现

Agent 操作在知识图谱上。节点是 K8s 对象(Pod、Deployment、Service、Node、HPA、PVC)加遥测源(Prometheus 序列、Loki 流、Tempo trace)。边编码归属(Pod → ReplicaSet → Deployment)、调度(Pod → Node)、观测(Pod → Prometheus 序列)。图由 kube-state-metrics 同步保鲜,每次告警重采样。

告警触发时,Agent 从受影响对象根因排障。它遍历边,拉相关遥测切片(最近 15 分钟),起草假设。假设按证据排名:多少遥测引用支撑它、多新近、多特异。Top-3 假设连同图路径可视化与修复审批按钮发到 Slack。

假设评分(四维乘积):

def evidence_score(hypothesis): recency = recency_weight(hypothesis.citations) # 越新越高 specificity = how_specific(hypothesis.citations) # 越特异越高 path_inv = 1.0 / len(hypothesis.graph_path) # 路径越短越高 cites = len(hypothesis.citations) # 引用越多越高 return recency * specificity * path_inv * cites

修复是门控的。默认允许的动作只读。破坏性动作(缩容、回滚、删 Pod)需要 Slack 审批;ArgoCD 回滚钩子需要一个 Agent 永不持有的 auth token。审计日志记录 Agent 考虑过 的每条命令——不只执行了的——这样评审流程能抓住近失。

三、架构与技术栈

  • 可观测性源:Prometheus、Loki、Tempo、kube-state-metrics。
  • 知识图:Neo4j(托管)或 kuzu(嵌入式),存 K8s 对象 + 遥测边。
  • Agent:LangGraph,每工具允许清单,默认只读。
  • 工具传输:FastMCP over StreamableHTTP;破坏性工具在独立服务、审批门后。
  • 模型:Claude Sonnet 4.7 做根因推理,Gemini 2.5 Flash 做日志摘要。
  • 修复:ArgoCD 回滚 webhook、PagerDuty 升级、Slack 审批卡。
  • 审计:只追加结构化日志(considered/executed/approved/outcome)。
  • 部署:带窄 RBAC 角色的 K8s Deployment,独立命名空间。

四、可复用产物

outputs/skill-devops-agent.md 是交付物。给定 K8s 集群与告警源,Agent 产出根因假设排名与 Slack 门控的修复流程。评分量表:

权重 标准 度量方式
25 场景集 RCA 准确率 20 个合成事件上 ≥ 80% 根因正确
20 安全 审计日志里破坏性动作护栏从不在无 Slack 审批时触发
20 出假设耗时 从告警到 Slack 简报 p50 < 5 分钟
20 可解释性 每个假设带图路径与遥测引用
15 集成完整性 PagerDuty/Slack/ArgoCD/Prometheus 端到端打通
100

一次典型排障:

webhook: alert.pagerduty.com -> checkout-api SLO breach, error rate 14% [graph] affected: Deployment checkout-api (3 Pods, Node ip-10-2-3-4) [walk] neighbors: ReplicaSet checkout-api-abc, recent rollout 14m ago [sample] prometheus error_rate 14%, up-trend; loki 500s on /api/v2/pay [hypo] #1 bad rollout: latest image checkout-api:v2.41 fails /healthz citations: deploy.yaml (rev 42), prometheus errorRate, loki 500 stack [slack] [ROLL BACK to v2.40] [ESCALATE] [IGNORE] (approval required; agent does not roll back unilaterally)

五、框架对比

AWS DevOps Agent 是 2026 的标杆参考,集成最深但锁定 AWS;Resolve AI 是跨云竞品,K8s 行动手册最完整;NeuBird 走语义图路线;Metoro 把 SLO 放在一等公民。本节建议用 LangGraph 自建,知识图用 kuzu 嵌入式起步(省运维),规模上来再换 Neo4j。工具传输用 FastMCP,把只读与破坏性工具分到两个 MCP 服务是安全的关键设计——Agent 的 service account 物理上无法直连破坏性动词。

六、练习

  1. 对照标杆:把你的 Agent 跑在 AWS DevOps Agent 演示过的同样三个事件上,发布并排对比,报告 Agent 在哪里分歧。
  2. 近失审计:加一个「近失」审计,标记任何 Agent 考虑过 但无审批就会破坏的命令,度量一周的近失率。
  3. 换模型:把假设模型从 Claude Sonnet 4.7 换成自托管 Llama 3.3 70B,度量 RCA 准确率差与单事件美元成本。
  4. 因果过滤:建一个因果过滤器,区分相关遥测尖峰与真根因,在 20 场景标签上训练一个小分类器。
  5. 回滚演练:加 ArgoCD 回滚演练——对着同 manifest 的 staging 集群回滚,在 Slack 审批前先在活集群验证回滚计划。

本节要点回顾

  1. 形态已定:告警触发 → Agent 读遥测遍历图 → 根因假设排名 → Slack 审批 → 门控修复。
  2. 功夫在范围与安全:默认只读 RBAC、加固 MCP、考虑 vs 执行审计日志。
  3. 知识图谱:K8s 对象 + 遥测源为节点,归属/调度/观测为边,kube-state-metrics 同步保鲜。
  4. 证据评分:新近性 × 特异性 × 图路径倒数 × 引用数。
  5. Slack 审批门:Agent 永不持有破坏性 token,人不点不执行。
  6. 近失审计:记录每个被考虑的命令,不只执行了的。
  7. 量化交付:20 场景 ≥ 80% RCA、出假设 p50 < 5 分钟。

下一节,我们进入「端到端微调流水线」——把数据、SFT、DPO、服务串成一条可投产的链。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U