← ClaudeAtlas

diag-k8s-node-pressurelisted

K8s 节点资源压力排查。CPU/Memory/Disk/PID Pressure 全链诊断: kubectl top → describe node → conditions → eviction events → 调度分析, 输出结构化报告与缓解建议。
seed-forge/harness-ai-kit · ★ 22 · DevOps & Infrastructure · score 74
Install: claude install-skill seed-forge/harness-ai-kit
# K8s Node Pressure Full-Chain Diagnostics ## 用途 当节点出现 `NotReady`、Pod 被驱逐、或监控报节点资源告警时触发。 ## 输入 - kubectl 上下文、目标节点名称(可选,默认排查所有) ## 输出 - 节点资源压力报告 + 缓解建议 ## 诊断步骤 ### Step 1: 节点状态总览 ```bash kubectl get nodes -o wide kubectl describe node {node_name} # 关注 Conditions: MemoryPressure / DiskPressure / PIDPressure / Ready ``` ### Step 2: 资源用量 ```bash kubectl top nodes kubectl top pods --all-namespaces --sort-by=memory | head -20 kubectl top pods --all-namespaces --sort-by=cpu | head -20 ``` ### Step 3: 驱逐事件 ```bash # 最近被驱逐的 Pod kubectl get events --all-namespaces --field-selector reason=Evicted --sort-by='.lastTimestamp' | tail -20 # 节点上的驱逐历史 kubectl get events --field-selector involvedObject.name={node_name} | grep -i evict ``` ### Step 4: Allocatable vs Allocated ```bash kubectl describe node {node_name} | grep -A 20 "Allocated resources" # 关注 CPU/ memory requests 占 Allocatable 的百分比 ``` ### Step 5: 系统级排查 ```bash # 在目标节点上(SSH 或通过 kubectl debug) df -h # 磁盘使用 free -h # 内存使用 ps aux --sort=-%mem | head -10 # 高内存进程 dmesg | grep -i oom # OOM killer journalctl -u kubelet --since "1 hour ago" | tail -50 ``` ## 输出模板 ``` K8s Node Pressure Analysis Report ════════════════════════════════════════ Cluster: {context} Node: {node_name} Time: {timestamp} Node Conditions Ready: {ready} MemoryPressure: {mem_pressure} DiskPressure: {disk_pressure} PIDPressure: {pid_pressure} Resource Usa