标准答案
- 先记录镜像 digest、配置版本、容器事件、资源指标、网络和进程状态,再决定是否进入容器。
- 调试命令应只读、低开销、最小权限,避免修改数据、安装未知工具或打印环境中的秘密。
- 需要额外工具时优先对同一镜像启动隔离诊断副本,明确它不代表原进程的全部状态。
- 调试结束后清理临时容器、凭据和文件,并把发现转化为长期指标、日志或测试。
题目解析
生产调试的第一目标是保留现场和降低影响。先保存镜像 digest、配置版本、Pod/container events、资源时间序列、请求错误、线程/进程和网络证据,再决定是否需要 exec;直接安装工具、重启或修改配置可能改变问题本身。
进入容器后应使用只读、低开销、最小权限的检查,避免打印完整环境、配置、请求头和 Secret。缺少工具时可以启动同一镜像的隔离诊断副本,或使用临时 debug 容器,但要标明它与原进程的 namespaces、内存和文件状态可能不同。调试结果应沉淀为长期指标、日志、测试和修复。
常见误区
- 误区:生产容器内随意安装软件。改正:优先使用只读检查、外部观测或隔离诊断副本,避免改变镜像和现场。
- 误区:把 env、配置和 token 全部打印出来。改正:按白名单查看非敏感字段,对 Secret 只看来源和校验结果。
- 误区:调试命令改变现场后不记录。改正:记录命令、时间、权限、输出和对现场的影响,便于复盘。