项目介绍
Kubernetes诊断MCP服务器
一款专为智能Kubernetes故障排除和诊断设计的模型上下文协议(MCP)服务器。旨在通过高级调试功能补充现有的K8s管理工具。
🚀 功能特性
高级诊断
- Pod健康分析:深入检查Pod问题并提供智能建议
- 集群健康概览:全面评估集群健康状况
- 日志分析:自动检测Pod日志中的错误模式
- 工作负载推荐:针对部署和服务的最佳实践建议
智能故障排除
- 识别常见问题:CrashLoopBackOff、ImagePullBackOff、资源限制
- 根据错误模式提供上下文建议
- 分析重启次数、资源使用情况和配置问题
- 关联事件与Pod问题
适用于生产环境
- 可以与任何Kubernetes集群(集群内或外部)配合使用
- 支持kubeconfig和集群内身份验证
- 全面的错误处理和日志记录
- 遵循Kubernetes client-go最佳实践
🛠 安装
前提条件
- Go 1.21+
- 访问Kubernetes集群
- 配置kubectl或在K8s集群内部运行
从源代码构建
git clone <此仓库>
cd k8s-diagnostics-mcp
go mod tidy
go build -o k8s-diagnostics-mcp
配置
服务器会自动检测您的Kubernetes配置:
- 集群内:当在K8s内部运行时使用服务账户
- 本地:使用
~/.kube/config或$KUBECONFIG环境变量
🔧 可用工具
diagnose_pod
诊断特定Kubernetes Pod的问题。
参数:
pod_name(必需):要诊断的Pod名称
namespace(可选):Kubernetes命名空间(默认:"default")
返回:
- Pod状态和阶段信息
- 容器重启次数和就绪状态
- 识别的问题和智能建议
- 与Pod相关的最近事件
- 资源配置分析
analyze_cluster_health
分析整体Kubernetes集群健康状况并识别问题。
返回:
- 节点数量和健康状态
- 命名空间数量
- 有问题的Pod列表及其诊断结果
- 资源使用概述
- 集群范围内的建议
get_workload_recommendations
获取改进工作负载配置的建议。
参数:
namespace(可选):要分析的Kubernetes命名空间(默认:"default")
返回:
analyze_pod_logs
获取并分析Pod日志中的常见错误模式。
参数:
pod_name(必需):Pod名称
namespace(可选):Kubernetes命名空间(默认:"default")
container(可选):特定容器名称
lines(可选):要检索的日志行数(默认:110)
返回:
- 原始日志输出
- 检测到的错误模式
- 基于错误的上下文建议
- 日志分析摘要
📚 资源
k8s://troubleshooting/common-issues
提供全面的Kubernetes常见问题故障排除指南,包括:
- CrashLoopBackOff调试
- ImagePullBackOff解决
- 待定Pod问题
- 性能故障排除
- 网络问题诊断
🎯 使用场景
对于DevOps工程师
- 在事故期间快速诊断Pod问题
- 集群健康监控和警报
- 自动化故障排除流程
- 最佳实践合规性检查
对于平台团队
- 标准化的故障排除程序
- 通过AI辅助调试进行知识共享
- 主动发现问题
- 开发者自助调试
对于AI辅助操作
- 与ChatGPT、Claude或其他LLM集成
- 自然语言故障排除查询
- 自动化事故响应
- 智能警报关联
🌟 独特之处
与专注于基本集群管理的现有Kubernetes MCP服务器不同,该服务器专门用于:
- 智能问题检测:超越简单的状态检查,识别根本原因
- 上下文建议:根据特定错误模式提供可操作的建议
- 日志分析:自动解析和分析日志中的常见问题
- 生产就绪:考虑到企业Kubernetes环境而构建
- CNCF生态系统集成:设计为与其他CNCF工具和最佳实践协同工作
🤝 贡献
我们欢迎贡献!该项目符合我们对CNCF生态系统和开源社区的承诺。
开发
# 本地运行
go run main.go
# 运行测试
go test ./...
# 生产构建
go build -ldflags="-s -w" -o k8s-diagnostics-mcp
📞 支持
- 项目博客:查看我们的技术博客了解K8s最佳实践
- GitHub问题:报告错误和功能请求
- CNCF社区:参与更广泛的Kubernetes社区
🏷 许可证
[待定]
为CNCF社区打造,充满爱心