Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add kudig-io/kudig-database --skill k8s-node-notreadygit clone --depth 1 https://github.com/kudig-io/kudig-databaseWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kudig-io/kudig-database/k8s-node-notready)<a href="https://agentmods.dev/skills/kudig-io/kudig-database/k8s-node-notready"><img src="https://agentmods.dev/badge/skills/kudig-io/kudig-database/k8s-node-notready/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kudig-io/kudig-database/k8s-node-notready"><img src="https://agentmods.dev/badge/skills/kudig-io/kudig-database/k8s-node-notready.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00022 | $0.05690 |
| Opus 5.5 | $0.00009 | $0.02276 |
| Sonnet 5.5 | $0.00004 | $0.01138 |
| Haiku 4.5 | $0.00002 | $0.00569 |
Grade A, and why
k8s-node-notready scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 425 lines — stays where its author put it; the contents beside it link to each section on GitHub.
生产环境安全提示
本文档包含可直接执行的运维命令。执行前请确认:当前目标集群与 Namespace 是否正确;是否具备足够的 RBAC 权限;是否已在非生产环境验证。命令风险等级标注:🔴 高风险(可能造成数据丢失或服务中断)、🟡 中风险(会修改集群状态,但通常可回滚)、🟢 低风险/只读(信息收集,无副作用)。
K8s Node NotReady 诊断与修复
Node NotReady 是 [[kubernetes|Kubernetes]] 集群中爆炸半径最大的问题类型之一。当节点进入 NotReady 状态,控制平面将在 pod-eviction-timeout(默认 5 分钟)后驱逐该节点上所有非 [[daemonset|DaemonSet]] Pod。控制平面节点 NotReady 可能直接威胁集群可用性。
本 [[SKILL|Skill]] 覆盖 kubelet 异常、容器运行时问题、网络分区、资源压力(磁盘/内存/PID)、证书过期等全部 12 种根因的诊断和修复。
何时使用此 Skill
| 症状 | 检测方法 | 置信度 |
|---|---|---|
kubectl get nodes 显示 NotReady |
`kubectl get nodes | grep NotReady` |
| 节点状态在 Ready/NotReady 间频繁切换 | Events 中交替出现 NodeReady/NodeNotReady | 0.85 |
Prometheus 告警 KubeNodeNotReady 触发 |
kube_node_status_condition{condition="Ready",status="false"} |
0.95 |
| 节点上 Pod 被大量驱逐 | kubectl get events --field-selector reason=Evicted |
0.80 |
| Node Lease 长时间未更新 | kubectl get lease -n kube-node-lease <node> |
0.90 |
排除条件: 节点 Ready 但 Pod CrashLoopBackOff → SKILL-POD-001; 节点 Ready 但 Pod Pending → SKILL-POD-002; 证书错误但节点 Ready → SKILL-SEC-001
快速分级(2 分钟内完成)
NotReady 节点数 / 总节点数
├── > 50% ──────────────→ 立即升级(跳过诊断)
├── > 30% 或控制平面节点 → P0(15min 内确认根因)
├── 多个工作节点 ────────→ P1(30min 内修复)
├── 单个工作节点 ────────→ P2(2h 内修复)
└── 新节点未承载业务 ────→ P3(4h 内处理)
立即升级条件(跳过所有诊断步骤):
-
50% 节点 NotReady
- 所有控制平面节点 NotReady
kubectl get nodes本身超时- NotReady 数量在 5 分钟内持续增加
执行流程
# 🟢 低风险:只读/信息收集,通常无副作用
工单/告警触发
│
▼
┌──────────────┐ 脚本: scripts/diagnose-quick.sh
│ Phase 1 │ 内容: kubectl 快速检查(只读,零风险)
│ 快速检查 │ Step: D1.1-D1.5
└──────┬───────┘
│ 无法确认根因
▼
┌──────────────┐ 脚本: scripts/diagnose-deep.sh
│ Phase 2 │ scripts/check-resources.sh
│ 深度检查 │ 内容: SSH 到节点检查(只读,零风险)
│ (需SSH) │ Step: D2.1-D2.10
└──────┬───────┘
│ 需主动探测
▼
┌──────────────┐ 参考: reference/diagnostic-workflow.md
│ Phase 3 │ 内容: 主动探测(低风险,可能需审批)
│ 主动探测 │ Step: D3.1-D3.3
└──────┬───────┘
│ 确认根因
▼
┌──────────────┐ 参考: reference/root-cause-catalog.md
│ 根因匹配 │ 数据: assets/root-cause-map.yaml
│ RC-001~012 │
└──────┬───────┘
│
▼
┌──────────────┐ 参考: reference/remediation-playbook.md
│ 修复操作 │ 脚本: scripts/cleanup-disk.sh (REM-002)
│ REM-001~010 │ 风险: LOW → MEDIUM → HIGH → CRITICAL
└──────┬───────┘
│
▼
┌──────────────┐ 脚本: scripts/verify-node.sh
│ 验证确认 │ 检查: 节点状态/Conditions/Lease/Pod
└──────────────┘
What ships with it
20 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- assets/escalation-template.md 8.5 KB
- assets/index.md 422 B
- assets/root-cause-map.yaml 25 KB
- assets/skill-metadata.yaml 9.0 KB
- assets/symptom-patterns.yaml 9.2 KB
- DIALOGUE.md 25 KB
- index.md 934 B
- reference/diagnostic-workflow.md 21 KB
- reference/index.md 787 B
- reference/remediation-playbook.md 28 KB
- reference/root-cause-catalog.md 15 KB
- reference/version-matrix.md 11 KB
- scripts/check-resources.sh 15 KB runs code
- scripts/cleanup-disk.sh 15 KB runs code
- scripts/diagnose-deep.sh 35 KB runs code
- scripts/diagnose-quick.sh 18 KB runs code
- scripts/index.md 346 B
- scripts/verify-node.sh 17 KB runs code
- SKILL-DEEP-DIVE.md 17 KB
- USAGE-GUIDE.md 27 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +19 lines c51229f5e2d4
- 1mo ago First seen · 406 lines · 22 tokens per session scan A 5fb63ffa2324
k8s-node-notready is a skill published in the GitHub repository kudig-io/kudig-database (6 stars, last pushed yesterday), licensed Apache-2.0. It adds 22 tokens to every session and 5,690 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
kubernetes-docs
Kubernetes 1.36 — Pods, Deployments, Services, Ingress, ConfigMaps, Secrets, RBAC, CRDs, Operators, kubectl, Helm.
k8s-aiops
Use this skill whenever the user needs to operate a Kubernetes cluster — list/inspect pods, deployments, statefulsets, daemonsets, replicasets, jobs, cronjobs, services, ingresses, endpoints, configmaps, secrets (names/keys only), PVCs/PVs/storageclasses, nodes, namespaces, and events; read pod logs; describe…
hunt-k8s
Hunt Kubernetes & Docker — API anonymous access, kubelet 10250 exec (SPDY/WebSocket, NOT plain POST) and the simpler /run primitive, etcd 2379 unauth, dashboard skip-login, RBAC misconfig, secret/SA-token abuse, docker.sock host escape, runc/container-escape (Leaky Vessels CVE-2024-21626), API-server-mediated…
networkpolicy-debug
Diagnose NetworkPolicy-related connectivity issues (traffic unexpectedly blocked, default-deny effects, egress blocking DNS). Identifies which NetworkPolicies affect a pod, checks ingress/egress rules, and verifies CNI support.
k8e-sandbox
Run a goal end to end inside an isolated K8E sandbox pod (gVisor / Kata / Firecracker) instead of on the host: exec bash / Python / Node / TypeScript, install packages, move files in and out, reuse one session across calls, snapshot and restore the workspace, run background jobs, and publish an in-sandbox service…
node-logs
Retrieve logs from a Kubernetes node — systemd units (journalctl) or files under /var/log. Use when you need node-level evidence: containerd, kubelet, kernel/OOM, or anything the pod's own log cannot show. Three access paths in order: hostscript (SSH), nodescript (debug pod), and localscript against the kubelet log…