Skip to content
Back to skills

Diag K8s Node Pressure

ASecurity

K8s 节点资源压力排查。CPU/Memory/Disk/PID Pressure 全链诊断: kubectl top → describe node → conditions → eviction events → 调度分析, 输出结构化报告与缓解建议。

  • 21 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 1, 2026
ai-agentsgobashnode

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 1, 2026

npx -y skills add seed-forge/harness-ai-kit --skill diag-k8s-node-pressure --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Diag K8s Node Pressure?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Diag K8s Node Pressure
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/seed-forge-diag-k8s-node-pressure/badge)](https://www.skillsdirectory.com/skills/seed-forge-diag-k8s-node-pressure)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: diag-k8s-node-pressure
description: >
  K8s 节点资源压力排查。CPU/Memory/Disk/PID Pressure 全链诊断:
  kubectl top → describe node → conditions → eviction events → 调度分析,
  输出结构化报告与缓解建议。
---

# 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 Usage
  CPU:     {cpu_used}/{cpu_allocatable} ({cpu_pct}%)
  Memory:  {mem_used}/{mem_allocatable} ({mem_pct}%)
  Disk:    {disk_used}/{disk_total} ({disk_pct}%)
  Pods:    {pod_count}/{pod_max}

Top Consumers (by memory)
  | Pod | Namespace | Memory | CPU |
  |-----|-----------|--------|-----|
  | {pod_1} | {ns_1} | {mem_1} | {cpu_1} |

Evicted Pods (last 10)
  {evicted_pod_1} at {time_1}: {reason_1}

Allocated Resources
  CPU Requests:    {cpu_req_pct}% of allocatable
  Memory Requests: {mem_req_pct}% of allocatable

Root Cause: {root_cause}

Recommendations
  1. {immediate_action}
  2. {scaling_action}
  3. {long_term_fix}
```

## 告警阈值

| 指标 | Warning | Critical |
|------|---------|----------|
| CPU usage | > 80% | > 95% |
| Memory usage | > 80% | > 95% |
| Disk usage | > 85% | > 95% |
| Evictions/hour | > 3 | > 10 |
| Node NotReady | - | 任一 |

## 推荐输出格式

执行完毕后输出诊断报告:

**结论**:<正常 / 发现问题>

| 排查环节 | 发现 | 证据 |
|---------|------|------|
| ... | {...} | {...} |

**根因**:<定位>
**修复建议**:<可执行步骤>

## 约束

- 只读诊断。节点级操作(cordon/drain/reboot)需明确告知用户。
- SSH 到节点属于受控操作,优先通过 `kubectl debug node/` 替代。

## Quick Reference

| 动作 | 命令 |
|------|------|
| 节点状态 | `kubectl get nodes -o wide` |
| 节点详情 | `kubectl describe node {name}` |
| 资源用量 | `kubectl top nodes` |
| Top Pod | `kubectl top pods -A --sort-by=memory` |
| 驱逐事件 | `kubectl get events --field-selector reason=Evicted` |

## 专题引用

无外部 references。如需节点运维,联动 `组织内部集群-ansible-control` 或 `infra-observability-ops`。

Files in this skill

  • CHANGELOG.md684 B
  • SKILL.md3.8 KB
  • USAGE.md578 B
  • skill.json1.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.