核心用法
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. 外部依赖刚性:强制依赖 kubectl 与 jq,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 密钥,需在受控环境使用
- 集群连接稳定性:诊断过程中集群状态变化可能导致分析结论过时