2026/4/18 10:51:06
网站建设
项目流程
网站开发做什么的,财经直播的网站开发一个多少钱,网站构思,写作网站Kubernetes Debug 专用镜像实践指南适用人群#xff1a;SRE / DevOps / 运维工程师
适用场景#xff1a;Kubernetes 生产环境排障、网络/进程/资源问题快速定位一、为什么需要 Debug 专用镜像
在实际生产环境中#xff0c;我们常见的业务镜像往往具备以下特点#xff1a;
基…Kubernetes Debug 专用镜像实践指南适用人群SRE / DevOps / 运维工程师适用场景Kubernetes 生产环境排障、网络/进程/资源问题快速定位一、为什么需要 Debug 专用镜像在实际生产环境中我们常见的业务镜像往往具备以下特点基于alpine/debian-slim/distroless体积极小攻击面低不包含任何运维排障工具常见问题包括ps: command not foundss / netstat / top / free不存在无法抓包、无法定位端口、无法确认真实启动参数结论生产镜像应该极简但排障能力不能没有。因此一个Debug 专用镜像是 Kubernetes 运维体系中的必备组件。二、Debug 镜像设计原则一个合格的 Debug 镜像应满足工具齐全进程pstop网络ssnetstattcpdump系统freeuptimevmstat基础工具curlwgetbash系统稳定Debian / Ubuntu LTS镜像可控内部镜像仓库固定 tag不随意变更仅用于排障不承载业务三、推荐基础镜像选择推荐使用debian:11ubuntu:22.04本文以Debian 11为例。四、Debug 镜像 Dockerfile 示例FROM debian:11 LABEL maintainersrecompany.com LABEL descriptionKubernetes Debug Image # 替换为大陆镜像源阿里云 RUN sed -i sdeb.debian.orgmirrors.aliyun.comg /etc/apt/sources.list \ sed -i ssecurity.debian.orgmirrors.aliyun.com/debian-securityg /etc/apt/sources.list # 安装常用运维调试工具 RUN apt-get update apt-get install -y \ procps \ iproute2 \ net-tools \ tcpdump \ curl \ wget \ vim \ less \ lsof \ strace \ bash \ rm -rf /var/lib/apt/lists/* CMD [bash]五、镜像包含工具说明分类工具用途进程ps / top查看进程、CPU、内存网络ss / netstat查看端口、连接状态抓包tcpdump网络问题定位系统free / uptime资源使用情况文件lsof端口与进程映射调试strace系统调用分析六、构建并推送镜像docker build -t registry.example.com/ops/k8s-debug:debian11.docker push registry.example.com/ops/k8s-debug:debian11建议放入公司私有镜像仓库tag 固定如debian11/v1.0七、在 Kubernetes 中使用 Debug 镜像推荐方式一kubectl debug最佳实践kubectl debug pod/mx-devops-frontend\-it\--imageregistry.example.com/ops/k8s-debug:debian11\--targetfrontend特点不影响原 Pod共享网络 / PID / 文件系统取决于配置排障完成即可退出方式二临时 Debug PodapiVersion:v1kind:Podmetadata:name:debug-toolsspec:containers:-name:debugimage:registry.example.com/ops/k8s-debug:debian11command:[sleep,36000]适合长时间排查网络连通性测试八、常用排障命令速查查看完整进程启动参数psauxww查看监听端口ss -lntp查看端口被哪个进程占用lsof-i :3000抓包示例tcpdump -i any port80九、生产环境最佳实践建议业务镜像与 Debug 镜像严格分离禁止在业务镜像中安装 tcpdumpDebug 镜像仅授予运维权限结合 RBAC 控制 kubectl debug 权限成熟团队一定有 Debug 镜像没有只是时间问题。十、总结ps不存在 ≠ 系统有问题而是镜像设计选择问题Debug 镜像是 Kubernetes 运维的“急救箱”平时不用但出事时必须能拿出来。吐槽一下说好AI能更好效率工作释放运维的工作但是有些公司已经把非运维主要工作硬硬塞进来已经成为了一个四不像了。