内容
# 库伯诺特
**智能Kubernetes修复的AIOps平台**
[](https://goreportcard.com/report/github.com/jordigilh/kubernaut)
[](https://golang.org/dl/)
[](https://kubernetes.io/)
[](LICENSE)
[](https://github.com/jordigilh/kubernaut/actions/workflows/ci-pipeline.yml)
库伯诺特(Kubernaut)从Kubernetes警报到自动修复形成闭环。它以两种模式运行:**自主模式** — 检测信号,调查根本原因,并执行修复,无需人工干预;**交互模式** — 允许操作员通过MCP或A2A加入正在进行的调查,指导代理,并实时批准修复。由LLM驱动的代理使用原生的Go client-go绑定针对Kubernetes API、Prometheus和日志端点进行调查,选择修复工作流并执行修复,或在无法修复时将问题升级给人类,并提供完整的根因分析(RCA)。
<div align="center">
<video src="https://github.com/user-attachments/assets/b95290db-412b-4d6d-81b8-f766ef4657e2" controls width="100%"></video>
</div>
<details>
<summary>查看自主模式演示(非交互式)</summary>
<p align="center">
<img src="https://raw.githubusercontent.com/jordigilh/kubernaut-demo-scenarios/main/scenarios/crashloop/crashloop-lite.gif" alt="CrashLoopBackOff 演示 — 自主警报到修复" width="800"/>
</p>
</details>
<p align="center">
<a href="https://jordigilh.github.io/kubernaut-docs/"><strong>完整文档</strong></a> ·
<a href="https://github.com/jordigilh/kubernaut-demo-scenarios"><strong>演示场景</strong></a> ·
<a href="https://github.com/jordigilh/kubernaut/releases/tag/v1.5.2"><strong>最新版本(v1.5.2)</strong></a>
</p>
---
## 为什么选择库伯诺特?
Kubernetes操作员花费数小时手动处理警报,诊断分散的日志和指标,并从过时的运行手册中执行修复。响应依赖于经验知识,人类可用性,并且通常发生在凌晨3点。
基于规则的修复工具可以帮助解决已知的问题 — “如果X,则执行Y”。但是,当相同的症状有多个根本原因,或者正确的修复取决于规则无法看到的上下文时,它们就失效了。
库伯诺特填补了这一空白。它使用LLM代理,通过原生的Go绑定针对Kubernetes API和可观察性堆栈,调查实际的根本原因,选择正确的修复工作流,执行修复,并验证修复是否有效 — 只有在必要时才会升级给人类。基于规则的工具就像恒温器,而库伯诺特是一个诊断专家,也可以调整恒温器。
**[为什么选择库伯诺特? — 与基于规则的工具的完整比较](https://jordigilh.github.io/kubernaut-docs/latest/getting-started/why-kubernaut/)**
---
## 库伯诺特的功能
- **检测** — 接收Prometheus AlertManager警报和Kubernetes事件,验证资源范围,并通过指纹进行重复数据消除
- **分类** — 通过多层管道(触发警报,Prometheus规则评估,LLM分类)解决信号严重性,并从基础设施上下文中派生接地信号名称
- **调查** — 使用Kubernetes检查工具,可配置的可观察性工具集(Prometheus等)和修复历史记录进行实时根本原因分析。**自主**运行端到端,或**交互**引导调查实时通过MCP工具或A2A会话
- **集成** — 通过API前端公开MCP和A2A(Agent-to-Agent)协议端点,使外部代理,UI和自动化可以通过OIDC身份验证会话与库伯诺特交互。操作员可以在飞行途中接管自主会话,审查调查结果并批准下一步
- **修复** — 从可搜索的目录中选择并执行工作流,通过Tekton Pipelines,Kubernetes作业或Ansible(AWX/AAP),并带有可选的人工审批门
- **闭环** — 通知团队(Slack,webhook),通过健康检查,警报解决和规范哈希漂移检测评估修复是否有效,并将有效性得分反馈到未来的调查中
<details>
<summary>架构</summary>

</details>
<details>
<summary>服务</summary>
| 服务 | 路径 | 描述 |
|---|---|---|
| **网关** | `cmd/gateway` | 信号摄取 — AlertManager Webhooks 和 Kubernetes 事件 |
| **信号处理** | `cmd/signalprocessing` | 信号丰富,重复数据消除和路由 |
| **修复编排器** | `cmd/remediationorchestrator` | CRD 生命周期编排贯穿整个管道 |
| **AI 分析** | `cmd/aianalysis` | 调查控制器 — 调度到库伯诺特代理 |
| **库伯诺特代理** | `cmd/kubernautagent` | LLM驱动的RCA,工作流选择和MCP工具执行 |
| **API 前端** | `cmd/apifrontend` | 外部协议层 — MCP,A2A,OIDC身份验证,严重性分类 |
| **工作流执行** | `cmd/workflowexecution` | Tekton Pipeline / Job / Ansible 执行引擎 |
| **数据存储** | `cmd/datastorage` | 工作流目录,审计跟踪和持久性(PostgreSQL) |
| **通知** | `cmd/notification` | Slack,webhook和控制台通知交付 |
| **有效性监控器** | `cmd/effectivenessmonitor` | 修复后健康检查和有效性评分 |
| **身份验证Webhook** | `cmd/authwebhook` | Kubernetes身份验证Webhook用于服务身份 |
</details>
---
## 路线图
### v1.5.2 — OpenAI适配器和严重性模型([已发布](https://github.com/jordigilh/kubernaut/releases/tag/v1.5.2))
- **OpenAI兼容的LLM适配器** — 用于OpenAI兼容端点的内部适配器(LlamaStack,vLLM,Ollama,Azure OpenAI),带有mTLS传输链注入,流式传输和工具调用支持
- **4级严重性模型** — 在CRD,API,策略和提示中用`warning`/`info`替换`medium`/`low`
- **集群范围资源修复** — 动态范围解析用于KA调查,AF和有效性监控中的命名空间处理
### v1.6 — 集群修复和ITSM(下一个)
- **集群操作** — 通过ACM/OCM进行多集群修复编排,使基于策略的修复跨集群Kubernetes环境成为可能
- **ServiceNow事件分类** — 通过API前端使用ServiceNow事件作为信号,使库伯诺特能够调查和修复ITSM票证以及Kubernetes警报
**[完整路线图](docs/roadmap/ROADMAP.md)** — 有关过去版本的更多信息,请参见[CHANGELOG](CHANGELOG.md)。
---
## 安装
请参阅[安装指南](https://jordigilh.github.io/kubernaut-docs/latest/getting-started/installation/)以获取先决条件,配置和部署说明。
---
## 文档
| 资源 | 链接 |
|---|---|
| **用户和操作员指南** | [jordigilh.github.io/kubernaut-docs](https://jordigilh.github.io/kubernaut-docs/) |
| **架构概述** | [架构](https://jordigilh.github.io/kubernaut-docs/latest/getting-started/architecture-overview/) |
| **开发者指南** | [docs/DEVELOPER_GUIDE.md](docs/DEVELOPER_GUIDE.md) |
| **必须收集的诊断信息** | [cmd/must-gather/README.md](cmd/must-gather/README.md) |
---
## 相关仓库
| 仓库 | 描述 |
|---|---|
| [kubernaut-operator](https://github.com/jordigilh/kubernaut-operator) | OLM操作员 — 在OpenShift上部署和管理库伯诺特服务 |
| [kubernaut-console](https://github.com/jordigilh/kubernaut-console) | 库伯诺特控制台 — 用于交互式调查和修复的Web UI |
| [kubernaut-docs](https://github.com/jordigilh/kubernaut-docs) | 文档网站(MkDocs Material) |
| [kubernaut-demo-scenarios](https://github.com/jordigilh/kubernaut-demo-scenarios) | 演示场景,脚本和录制 |
---
## 开发
```bash
make build-all # 构建所有服务
make test-tier-unit # 运行单元测试(所有服务)
make test-integration-apifrontend # 为服务运行集成测试
make test-e2e-apifrontend # 为服务运行E2E测试(Kind集群)
make test-all-gateway # 为服务运行所有测试层
make lint # 在整个代码仓库上运行golangci-lint
```
我们使用**Ginkgo/Gomega BDD**进行测试,并遵循严格的TDD工作流程和防御性测试金字塔(单元测试,集成测试,E2E测试)。有关环境设置,构建目标和测试命令的详细信息,请参见[开发者指南](docs/DEVELOPER_GUIDE.md)。
---
## 贡献
有关指南,请参见[CONTRIBUTING.md](CONTRIBUTING.md)。简而言之:创建功能分支,实现功能并添加测试,更新文档,然后打开PR。
---
## 许可证
Apache License 2.0 — 请参见[LICENSE](LICENSE)。
---
**问题**: [GitHub Issues](https://github.com/jordigilh/kubernaut/issues) · **讨论**: [GitHub Discussions](https://github.com/jordigilh/kubernaut/discussions)
**库伯诺特** — 从警报到修复,智能地。