docs: 补全命令说明并把 README 按模块拆分
- Docker 命令表由纯名称列表改为「命令 / 作用 / 实际执行」三列, 覆盖全部 33 条;补充顶部示例与选项解析的例外说明 - 新增 pkg.refreshindex 独立小节 - 按命令分组拆出 README.docker/net/disk/diagnose/proc/pkg.md, 主 README 保留简介、用法速览与「命令一览」导航表 - 新增「文档要写在哪」小节,约定后续新增命令的文档归属
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# 容器/Pod 诊断(`kopsc diagnose`)
|
||||
|
||||
> 返回 [README.md](README.md)
|
||||
|
||||
`kopsc diagnose <名称>` 自动判断目标是 Docker 容器还是 Kubernetes Pod,
|
||||
输出状态、根因、依据、建议,并附最近日志与事件。只读,不修改任何对象。
|
||||
|
||||
```bash
|
||||
kopsc diagnose web # 自动识别 Docker 容器或 K8s Pod,给出根因
|
||||
kopsc diagnose api-0 -n prod # K8s:本命令里 -n 表示 namespace
|
||||
kopsc diagnose api-0 --kind k8s --context staging
|
||||
kopsc diagnose web --lines 200 --no-events
|
||||
# 目标名写错时不用自己查:kopsc 会提示「你可能要找的是: web-1, web-2」
|
||||
```
|
||||
|
||||
## 输出示例
|
||||
|
||||
```text
|
||||
目标: web
|
||||
来源: Docker (docker)
|
||||
状态: exited ExitCode=137 OOMKilled=true RestartCount=3
|
||||
镜像: nginx:1.25
|
||||
判定: ❌ 容器因内存超限被 OOM kill
|
||||
依据: State.Status=exited, ExitCode=137, OOMKilled=true, RestartCount=3
|
||||
建议: 提高容器的内存限制,或降低应用峰值内存;可用 kopsc docker stats 观察
|
||||
|
||||
最近日志 (50 行):
|
||||
...
|
||||
最近事件 (1h):
|
||||
...
|
||||
```
|
||||
|
||||
## 选项
|
||||
|
||||
| 参数 | 说明 |
|
||||
| --- | --- |
|
||||
| `--kind docker\|k8s` | 强制来源;默认自动识别:先 `docker inspect`,未命中再 `kubectl get pod` |
|
||||
| `-n`, `-N`, `--namespace` | **仅 diagnose**:Kubernetes 命名空间。默认取 kubeconfig 当前上下文,未设置则为 `default` |
|
||||
| `--context` | kubectl 上下文 |
|
||||
| `-c`, `--container` | 多容器 Pod 只看指定容器(默认输出全部容器) |
|
||||
| `--lines N` | 日志行数,默认 50 |
|
||||
| `--no-logs` / `--no-events` | 跳过日志 / 事件采集 |
|
||||
| `--dry-run` | 只预览将执行的诊断动作,不调用 docker/kubectl |
|
||||
|
||||
> `-n` 只在 `kopsc diagnose` 中表示 namespace;其它命令里 `-n` 仍是 `--dry-run` 的简写。
|
||||
> Docker 模式下传 `--namespace`/`--context` 会直接报错,不会静默忽略。
|
||||
|
||||
## 目标名写错时
|
||||
|
||||
找不到目标时,kopsc 会在 Docker 容器名与 K8s Pod 名里找名字相近的(前缀、包含匹配,忽略大小写),
|
||||
最多列 5 个:
|
||||
|
||||
```text
|
||||
kopsc: 未找到目标 "web":...
|
||||
你可能要找的是: web-1, web-2
|
||||
```
|
||||
|
||||
一个都不相似时,改为列出当前存在的对象,便于对照拼写。
|
||||
|
||||
## 判定覆盖
|
||||
|
||||
- Docker:OOMKilled、ExitCode 137/143/126/127、正常退出、重启循环、unhealthy、created/paused/dead
|
||||
- Kubernetes:CrashLoopBackOff、ImagePullBackOff/ErrImagePull、CreateContainerConfigError、OOMKilled、
|
||||
Pending(结合 FailedScheduling/FailedMount 事件)、Evicted
|
||||
Reference in New Issue
Block a user