Kubernetes调试方法Skill kubernetes-debug

这个技能提供Kubernetes集群调试的方法论和脚本,帮助快速诊断和解决Pod崩溃、CrashLoopBackOff、OOMKilled、部署问题、资源问题等常见故障。核心原则是先检查事件后查看日志,包括一系列Python脚本用于列出Pod、获取事件、日志、描述Pod、检查资源、部署状态和滚动历史。适用于DevOps工程师、云原生开发者、系统管理员,关键词包括Kubernetes、调试、Pod、事件、日志、DevOps、云原生、脚本、故障排除、容器编排。

Docker/K8s 0 次安装 0 次浏览 更新于 3/15/2026

name: kubernetes-debug description: Kubernetes调试方法和脚本。用于Pod崩溃、CrashLoopBackOff、OOMKilled、部署问题、资源问题或容器故障。

Kubernetes调试

核心原则:先事件后日志

始终先检查Pod事件再查看日志。 事件能更快解释80%的问题:

  • OOMKilled → 内存限制超出
  • ImagePullBackOff → 镜像未找到或认证问题
  • FailedScheduling → 没有节点有足够资源
  • CrashLoopBackOff → 容器反复崩溃

可用脚本

所有脚本都在 .claude/skills/infrastructure-kubernetes/scripts/

list_pods.py - 列出Pod及其状态

python .claude/skills/infrastructure-kubernetes/scripts/list_pods.py -n <命名空间> [--label <选择器>]

# 示例:
python .claude/skills/infrastructure-kubernetes/scripts/list_pods.py -n otel-demo
python .claude/skills/infrastructure-kubernetes/scripts/list_pods.py -n otel-demo --label app.kubernetes.io/name=payment

get_events.py - 获取Pod事件(优先使用!)

python .claude/skills/infrastructure-kubernetes/scripts/get_events.py <Pod名称> -n <命名空间>

# 示例:
python .claude/skills/infrastructure-kubernetes/scripts/get_events.py payment-7f8b9c6d5-x2k4m -n otel-demo

get_logs.py - 获取Pod日志

python .claude/skills/infrastructure-kubernetes/scripts/get_logs.py <Pod名称> -n <命名空间> [--tail N] [--container NAME]

# 示例:
python .claude/skills/infrastructure-kubernetes/scripts/get_logs.py payment-7f8b9c6d5-x2k4m -n otel-demo --tail 100
python .claude/skills/infrastructure-kubernetes/scripts/get_logs.py payment-7f8b9c6d5-x2k4m -n otel-demo --container payment

describe_pod.py - 详细Pod信息

python .claude/skills/infrastructure-kubernetes/scripts/describe_pod.py <Pod名称> -n <命名空间>

get_resources.py - 资源使用与限制对比

python .claude/skills/infrastructure-kubernetes/scripts/get_resources.py <Pod名称> -n <命名空间>

describe_deployment.py - 部署状态

python .claude/skills/infrastructure-kubernetes/scripts/describe_deployment.py <部署名称> -n <命名空间>

get_history.py - 滚动历史

python .claude/skills/infrastructure-kubernetes/scripts/get_history.py <部署名称> -n <命名空间>

调试工作流

Pod未启动(Pending/CrashLoopBackOff)

  1. list_pods.py - 检查Pod状态
  2. get_events.py - 查找调度/拉取/崩溃事件
  3. describe_pod.py - 检查条件和容器状态
  4. get_logs.py - 仅当事件无法解释时

Pod重启(OOMKilled/崩溃)

  1. get_events.py - 检查OOMKilled或错误事件
  2. get_resources.py - 比较使用量与限制
  3. get_logs.py - 检查崩溃前错误
  4. describe_pod.py - 检查重启次数和状态

部署未进展

  1. describe_deployment.py - 检查副本数量
  2. list_pods.py - 查找卡住的Pod
  3. get_events.py - 检查卡住Pod的事件
  4. get_history.py - 检查滚动历史以回滚

常见问题与解决方案

事件原因 含义 操作
OOMKilled 容器超出内存限制 增加限制或修复内存泄漏
ImagePullBackOff 无法拉取镜像 检查镜像名称、注册表认证
CrashLoopBackOff 容器持续崩溃 检查启动错误日志
FailedScheduling 没有节点能运行Pod 检查节点资源、污点
Unhealthy 存活探针失败 检查探针配置、应用健康

输出格式

报告发现时,使用此结构:

## Kubernetes分析

**Pod**: <名称>
**命名空间**: <命名空间>
**状态**: <阶段> (重启次数: N)

### 事件
- [时间戳] <原因>: <消息>

### 发现的问题
1. [问题描述及证据]

### 根因假设
[基于事件和日志]

### 推荐操作
[具体补救步骤]