核心用法
kube-medic 是一款面向Kubernetes SRE/运维工程师的AI辅助诊断工具,封装了kubectl常用排查命令,提供五个核心子命令:
- `sweep`:全集群健康扫描,快速定位CrashLoopBackOff、ImagePullBackOff、NotReady节点等关键问题
- `pod <name>`:深度Pod尸检,关联容器状态、日志、事件、镜像版本差异,输出标准化诊断报告
- `deploy <name>`:Deployment状态分析,检测 rollout 阻塞、版本历史对比、ReplicaSet健康度
- `resources`:CPU/内存压力检测,识别节点过载风险与无资源限制的Pod
- `events [namespace]``:近期事件聚合,支持自定义时间窗口,快速追溯变更
显著优点
1. 数据关联诊断:不罗列原始输出,而是主动关联 Events+Pod Status、Logs+Deployment History,给出根因判断而非症状堆砌
2. 结构化输出:统一Markdown格式报告,含表格、时间线、诊断结论、可执行建议,适合Slack/Discord/工单直接粘贴
3. 默认只读安全:写操作需用户显式确认(--confirm-write),支持回滚、扩缩容、Pod删除等受控修复动作
4. 多集群支持:通过--context无缝切换生产/测试环境
5. 大集群优化:自动过滤非Running Pod、限制Top 20资源消费者、事件截断100条,避免信息过载
潜在缺点与局限性
- 依赖本地kubectl:需用户本地配置有效的kubeconfig,无法直连云端托管集群API
- Metrics Server依赖:
resources子命令需集群预装metrics-server,否则CPU/内存用量无法获取 - RBAC权限敏感:部分诊断需节点读取、事件查看等权限,受限用户可能遇到授权失败
- 无历史数据:仅分析当前集群状态,无法对比跨时间段趋势(需配合Prometheus等外部系统)
- Discord场景特殊处理:长输出需分片发送,宽表格在移动端体验受限
适合人群
- On-call SRE/运维工程师:快速分级(triage)生产事故,替代手工kubectl排查脚本
- 平台工程团队:标准化故障排查流程,降低新手K8s认知门槛
- DevOps开发者:自助排查自有命名空间应用异常,减少工单流转
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 误删/误回滚 | 用户确认后执行写操作 | 强制二次确认,显示完整命令与影响范围 |
| 敏感信息泄露 | Pod日志可能含密钥、token | 建议企业级部署时对接日志脱敏系统 |
| 集群过载 | 大规模集群sweep产生大量API请求 | 内置命名空间过滤与结果截断机制 |
| 权限提升试探 | 工具本身不提供提权,但可探测权限边界 | 遵循最小RBAC原则部署 |