news 2026/7/7 4:47:32

Kubernetes Debug 专用镜像实践指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kubernetes Debug 专用镜像实践指南

Kubernetes Debug 专用镜像实践指南

适用人群:SRE / DevOps / 运维工程师

适用场景:Kubernetes 生产环境排障、网络/进程/资源问题快速定位


一、为什么需要 Debug 专用镜像

在实际生产环境中,我们常见的业务镜像往往具备以下特点:

  • 基于alpine/debian-slim/distroless
  • 体积极小,攻击面低
  • 不包含任何运维排障工具

常见问题包括:

  • ps: command not found
  • ss / netstat / top / free不存在
  • 无法抓包、无法定位端口、无法确认真实启动参数

结论

生产镜像应该极简,但排障能力不能没有。

因此,一个Debug 专用镜像是 Kubernetes 运维体系中的必备组件。


二、Debug 镜像设计原则

一个合格的 Debug 镜像应满足:

  1. 工具齐全

    • 进程:pstop
    • 网络:ssnetstattcpdump
    • 系统:freeuptimevmstat
    • 基础工具:curlwgetbash
  2. 系统稳定

    • Debian / Ubuntu LTS
  3. 镜像可控

    • 内部镜像仓库
    • 固定 tag,不随意变更
  4. 仅用于排障,不承载业务


三、推荐基础镜像选择

推荐使用:

  • debian:11
  • ubuntu:22.04

本文以Debian 11为例。


四、Debug 镜像 Dockerfile 示例

FROM debian:11 LABEL maintainer="sre@company.com" LABEL description="Kubernetes Debug Image" # 替换为大陆镜像源(阿里云) RUN sed -i 's@deb.debian.org@mirrors.aliyun.com@g' /etc/apt/sources.list \ && sed -i 's@security.debian.org@mirrors.aliyun.com/debian-security@g' /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\--image=registry.example.com/ops/k8s-debug:debian11\--target=frontend

特点:

  • 不影响原 Pod
  • 共享网络 / PID / 文件系统(取决于配置)
  • 排障完成即可退出

方式二:临时 Debug Pod

apiVersion: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

九、生产环境最佳实践建议

  1. 业务镜像与 Debug 镜像严格分离
  2. 禁止在业务镜像中安装 tcpdump
  3. Debug 镜像仅授予运维权限
  4. 结合 RBAC 控制 kubectl debug 权限

成熟团队一定有 Debug 镜像,没有只是时间问题。


十、总结

  • ps不存在 ≠ 系统有问题
  • 而是镜像设计选择问题
  • Debug 镜像是 Kubernetes 运维的“急救箱”

平时不用,但出事时必须能拿出来。


吐槽一下:

说好AI能更好效率工作,释放运维的工作,但是有些公司已经把非运维主要工作硬硬塞进来,已经成为了一个四不像了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 16:10:42

A06B-0236-B100伺服电机

A06B-0236-B100 伺服电机A06B-0236-B100 是一款高性能伺服电机,主要用于数控机床、工业机器人、自动化设备和精密机械中,实现高精度的位置、速度和扭矩控制。主要特点:高精度反馈:配合编码器或旋转变压器,实现精确位置…

作者头像 李华
网站建设 2026/7/7 18:08:18

【源码开源】基于STM32的应急救援仓系统 | 救援效率和实时监控

【源码开源】基于STM32的应急救援仓系统 | 救援效率和实时监控 前言 随着城市化进程的加快,自然灾害和突发公共事件的频发,应急救援系统在保障民众生命财产安全方面显得尤为重要。传统的应急救援仓多依赖人工巡查,效率低且信息获取滞后。为…

作者头像 李华
网站建设 2026/7/7 7:58:02

【开源源码】基于 STM32智能温度监控系统 | 一个支持远程监控与告警的嵌入式实践项目

基于 STM32 和 μC/OS 的智能温度监控系统设计与实现 ——一个支持远程监控与告警的嵌入式实践项目 随着物联网与智能硬件的发展,环境监控系统已经成为工业、农业、智能家居等领域的重要组成部分。其中,温度监控作为最基础的参数采集手段,其…

作者头像 李华
网站建设 2026/7/7 15:33:14

【小白笔记】大数加法

“大数加法”是面试和算法练习中非常经典的一道题(如 LeetCode 415)。它的核心矛盾在于:计算机的标准整数类型(如 64 位整型)有最大值限制,当数字超过几十位甚至上百位时,直接相加会溢出。 处理…

作者头像 李华
网站建设 2026/7/7 11:27:28

课题申报新手入门必备指南!利用AI辅助搞定 6大关键部分,高效提升申报成功率(附AI提示词)

课题申报已经成为不少教师同仁职业发展、职称评比的必要条件之一,但很多新手老师仍不知道该从何下手。对于厚厚的申报指南和复杂的评审指标,不少教师虽然有研究想法,但卡在选题、创新点等关键环节上。 今天七哥带各位老师将申报书彻底拆解,弄清楚各部分写作技巧,并搭配AI…

作者头像 李华
网站建设 2026/7/6 18:16:35

Advanced Database Cleaner - WordPress数据库清理优化插件

‌Advanced Database Cleaner Pro 是一款专为WordPress设计的数据库清理与优化插件,主要用于删除冗余数据、孤立表、过期瞬态等,以提升网站性能和数据库效率‌。 如果您已经使用WordPress一段时间了,那么您可以考虑一下清理工作。您的数据库…

作者头像 李华