Kubernetes
调试助手
为目标 Pod 启动临时 debug Pod,用于诊断网络、DNS 和文件系统问题。
v4.8.0 新增。使用调试助手在目标 Pod 旁边启动一个临时调试 Pod,并打开一个预装了调试工具的 Shell。
何时使用调试助手
- 目标镜像是精简镜像,如 distroless 或 scratch,没有 Shell。
- 你需要使用
tcpdump、dig、curl或nc等工具,但目标镜像中没有这些工具。 - 你需要检查挂载的卷或 Pod 的网络命名空间,而不想直接操作 Pod。
- 你正在调试
CrashLoopBackOff,Pod 无法保持足够长的时间来执行kubectl exec。
启动调试 Pod
选择目标 Pod
在 Pods 或 Workloads 页面,选择你要检查的 Pod 上的 Debug 按钮。
配置共享选项
选择是否共享进程命名空间、网络命名空间和挂载的卷。
等待调试 Pod 就绪
Dockerman 创建 Pod 并等待其变为 Ready 状态,然后才会打开终端。
通过嵌入式终端交互
调试 Pod 会在 Dockerman 的终端标签页中打开。
调试预设
Dockerman 内置三种预设,可为常见运行时预配置调试端口和协议:
| 预设 | 端口 | 协议 |
|---|---|---|
| Node.js | 9229 | Inspector |
| Go (Delve) | 2345 | DAP |
| Python (debugpy) | 5678 | DAP |
启动调试 Pod 时选择一个预设,即可跳过手动端口配置。
调试 Pod 内置工具
| 工具 | 用途 |
|---|---|
bash, sh | Shell |
ps, top, htop | 进程检查 |
netstat, ss | 连接状态 |
tcpdump | 数据包捕获 |
curl, wget | HTTP 探测 |
dig, nslookup | DNS 解析 |
nc | 原始 TCP 和 UDP 检查 |
vim, less | 文件检查 |
strace | 系统调用追踪(内核允许时) |
常见调试工作流
清理
调试 Pod 是临时的。完成后关闭终端标签页或退出 Shell,Dockerman 会自动为你清理。