kube-medic

🏥 Kubernetes 智能诊断与故障分诊

面向 SRE/DevOps 的 Kubernetes 智能诊断工具,通过 kubectl 实现集群健康巡检、Pod 尸检、资源压力分析与事件关联,支持多集群上下文与只读安全模式。

收藏
3.5k
安装
1.6k
版本
1.0.2
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

kube-medic 是一款专为 Kubernetes 运维设计的诊断技能,提供六大核心子命令:

  • sweep:全集群健康巡检,快速识别 NotReady 节点、CrashLoopBackOff/ImagePullBackOff Pod、近期警告事件
  • pod:单 Pod 深度尸检,关联日志、事件、镜像版本差异与容器状态
  • deploy:Deployment 状态分析,检测滚动更新阻塞、版本回滚点与 ReplicaSet 历史
  • resources:CPU/内存压力检测,输出节点资源水位、Top 20 资源消耗 Pod、无限制风险 Pod
  • events:时间窗口事件追踪,支持按命名空间过滤与自定义时间范围

工具采用结构化 JSON 输出,要求 AI 关联多源数据(Events + Pod Status + Logs + Resources)进行根因分析,而非简单罗列症状。

显著优点

1. 诊断工作流标准化:内置从模糊问题("集群有问题")到精确定位的完整排查路径,降低 SRE 认知负荷
2. 多集群与上下文感知:原生支持 --context 切换,适配多环境运维场景

3. 只读优先安全设计:默认只读模式,所有写操作(回滚、扩缩容、删除 Pod)需用户显式确认,避免误操作

4. Discord 场景优化:针对 IM 场景的消息长度限制与交互组件适配,适合 On-Call 群聊协作

5. RBAC 友好:清晰标注权限缺失场景,帮助用户定位所需 ClusterRole

潜在局限与风险

1. 外部依赖刚性:强制依赖 kubectljq,metrics-server 缺失时资源统计不可用
2. 网络与 kubeconfig 敏感:连接失败时仅能提示检查 VPN/kubeconfig,无法自助修复

3. 大规模集群输出截断:sweep/resources/events 均有人工上限(Top 20/100 条),超大规模集群可能遗漏边缘案例

4. 无内置持久化:诊断数据随会话消失,无法形成历史基线对比

5. 写操作范围受限:明确禁止 kubectl exec,容器内调试需用户手动介入

适合人群

  • On-Call SRE:需要快速分诊(Triage)的值班工程师
  • 平台/基础设施工程师:管理多集群、需标准化诊断流程的团队
  • DevOps 新手:通过内置诊断模板学习 K8s 故障排查逻辑

常规风险提示

  • RBAC 泄漏风险:技能运行时的 kubeconfig 权限即 AI 可用权限,高权限账户可能通过 confirm_write 执行破坏性操作
  • 敏感信息暴露:Pod 日志可能包含 PII、数据库凭证或内部 API 密钥,需在受控环境使用
  • 集群连接稳定性:诊断过程中集群状态变化可能导致分析结论过时

kube-medic 内容

scripts文件夹
手动下载zip · 20.3 kB
kube-medic.shtext/x-shellscript
请选择文件