| name | external-gitcode-ascend-k8s-check-fix |
| description | Kubernetes 集群健康检查与安全修复 — 诊断问题,用户确认后执行修复 |
| tags | ["kubernetes","k8s","devops","sre","incident-response","diagnostics","remediation","on-call"] |
| tools | [{"name":"k8s_check_fix","description":"执行 Kubernetes 集群诊断,并在用户批准后执行安全修复。子命令:sweep, pod, deploy, resources, events, fix。","command":"bash scripts/k8s-check-fix.sh","args":["[Truncated]","[Truncated]","[Truncated]","[Truncated]","[Truncated]","[Truncated]","[Truncated]","[Truncated]","[Truncated]","[Truncated]"]}] |
| dependencies | ["kubectl","jq"] |
| original-name | k8s-check-fix |
| synced-from | https://gitcode.com/Ascend/agent-skills |
| synced-date | 2026-05-26 |
| synced-commit | 1f7666e7768a0ceb21bb1d40ce4b5179fcb6f1d6 |
| license | UNKNOWN |
k8s-check-fix — Kubernetes 集群诊断与安全修复
该工具可以执行 Kubernetes 集群诊断(全面健康检查、Pod 深入排查、Deployment 分析、资源压力检测、事件监控),并且在用户明确批准后执行安全修复操作。
执行原则
- 每个 kubectl 命令调用必须设置超时(例如 30 秒)。如果命令在超时内未返回,立即向用户报告“命令执行超时,可能是 API Server 无响应”,并停止当前技能。
- 任何子命令失败(返回非零退出码或 JSON 错误字段),立即报告错误详情,不要自动重试,并询问用户是否继续。
- 如果用户没有明确要求继续,默认停止技能,避免陷入无意义的重试循环。
- 禁止连续调用超过 3 个子命令而不给用户反馈。每执行一个命令,必须将结果(哪怕是中间结果)以 Markdown 形式展示给用户。
- 如果某个子命令预计耗时超过 10 秒(例如
sweep 在大集群中),必须先向用户发送“正在执行,请稍候...”消息,再调用命令。
触发条件
在以下情况下使用此技能:
- 用户要求检查、诊断或修复 Kubernetes 集群、节点、Pod 或 Deployment。
- 用户报告的症状包括:Pod 频繁重启、节点状态
NotReady、kubectl 命令执行失败、滚动更新卡住、网络问题等。
- 用户提供了 kubectl 错误信息,或提到某个资源处于不健康状态。
- 用户描述模糊,如“我的集群出问题了”或“帮我调试 Kubernetes”。
不要在以下情况使用此技能:
- 用户询问的是非 Kubernetes 基础设施(例如 Docker Compose、不包含 K8s 的云虚拟机)。
- 用户只想查看运行中容器的日志,无需诊断(应使用通用日志技能)。
- 用户只是想激活该技能而不是使用该技能
配置与首次运行设置
在开始诊断前,检查技能目录下是否存在 config.json。如果文件不存在或缺少必要字段,使用 AskUserQuestion 收集以下信息:
- 默认 Kubernetes 上下文 – 从可用上下文中提供多选列表(通过
kubectl config get-contexts -o name 获取)。
- 默认命名空间 – 可选,用于限定操作范围。
- 自动确认修复 – 默认
false。警告用户开启自动确认非常危险。
- 只读模式 – 默认
false。如果设置为 true,将阻止 fix 子命令执行。
将答案写入 config.json。后续调用将读取这些值作为默认值,除非用户通过标志参数覆盖。 如果 config.json 存在但解析失败(JSON 格式错误),报告具体错误并停止技能,不要尝试默认值。
核心原则
- 默认只读 – 所有诊断命令(
sweep, pod, deploy, resources, events)均为安全只读操作。
- 写操作需显式批准 – 仅当用户明确说“是”后,才能使用
fix 子命令加 --confirm 标志执行。
- 严格写操作白名单 – 仅允许
rollout undo、rollout restart、、、、。