用途:为 Kubernetes 事故调查、根因分析与故障诊断提供一套 SRE 调试方法论,适用于 Pod 无法启动、卡住或异常等场景。集群访问方式(--context 模式)与内部服务 URL 见 k8s 技能。
核心原则:用 5 Whys 分析,不停留在症状,反复追问直到根因;关联日志、事件、指标形成完整画面;对每条触发告警都要处理,修复根因,或作为最后手段创建带理由的声明式 Silence CR,不得忽略或推迟。
调查阶段:一、分诊,确认集群(询问用户 dev/integration/live)、评估严重级别(P1 宕机/P2 降级/P3 轻微)、确定范围。二、数据收集,可用 scripts/cluster-health.sh [namespace] 快速快照,或用 kubectl get pods、describe pod、logs(含 --previous)、get events --sort-by='.lastTimestamp'、top pods 等命令;Prometheus 位于 OAuth2 Proxy 之后,DNS URL 无法用于 API 查询,需通过 kubectl exec 进入 prometheus 容器查询告警。三、关联,从日志、事件、指标提取时间戳,找出最先发生的事件并追踪级联。四、根因,应用 5 Whys 并从时间、因果、证据、完整性四方面验证。五、修复,存在多种方案时用 AskUserQuestion,在 integration/live 上只读并仅给建议,区分即时(回滚、扩缩、重启)、永久(代码/配置修复)与预防(告警、配额、测试)。
网络策略调试(Cilium + Hubble):所有流量默认拒绝,缺少标签是最常见原因。可 port-forward hubble-relay 后用 hubble observe --verdict DROPPED 等命令查看被丢弃流量,检查命名空间标签(network-policy.homelab/profile 等)。紧急逃生开关为给命名空间打 enforcement=disabled 标签,5 分钟后触发告警,修复后需移除该标签。
其他场景:HelmRelease 即使底层问题已解决仍可能卡在 Stalled/RetriesExceeded,可用 flux suspend/resume 重置失败计数;发布流水线排查按 PR 合并、GHCR OCI 制品、integration OCIRepository、Kustomization 健康、Flux Alert、tag 工作流、live OCIRepository 顺序逐段检查,注意 semver 约束差异。
限制:资料未提供该技能的安装方式、收费与平台支持信息;具体命令与流程以原文为准。