当前位置: 首页 > news >正文

k8s 调试

kubectl debug -it \ rocketmq-console-67bfcb57c8-nlprv \ -n rocketmq \ --image=busybox \ --target=rocketmq-console \ -- /bin/sh 

“PID 看进程,Network 看网卡,IPC 看内存,/proc 是望远镜;
Mount 不共享,所以删文件得先走进 /proc/<pid>/root。”

4. /proc 不是独立 namespace,而是“挂载”+“PID 视角”

  • 因为共享了 PID namespace,内核允许你在 busybox 里访问 /proc/<目标PID>/...
    典型用法:
    复制
    cat /proc/1/environ  # 看目标容器 1 号进程的环境变量
    ls /proc/1/root/app  # 直接浏览目标容器的根文件系统


    创建一个带有完整工具集的边车容器,与业务容器共享进程命名空间和文件系统。

    具体操作步骤

    1. 创建带有工具包的边车容器Pod

    yaml
    apiVersion: v1
    kind: Pod
    metadata:name: debug-pod-with-sidecar
    spec:shareProcessNamespace: true  # 关键:共享进程命名空间containers:- name: main-appimage: nginx:alpine  # 你的业务镜像,可能缺少工具ports:- containerPort: 80- name: debug-sidecarimage: busybox:latest  # 或者使用包含完整工具的镜像command: ["sleep"]args: ["infinity"]resources:requests:memory: "64Mi"cpu: "50m"limits:memory: "128Mi"cpu: "100m"
    1. 通过边车容器调试主容器

    bash
    # 进入边车容器
    kubectl exec -it debug-pod-with-sidecar -c debug-sidecar -- sh# 在边车容器中查看主容器的进程
    ps aux# 使用网络工具检查主容器的网络连接
    netstat -tulpn
    nc -zv main-app 80# 通过共享的 /proc 文件系统查看主容器信息
    cat /proc/1/status  # 查看主容器第一个进程状态
    1. 更强大的工具包边车
      使用包含更全面工具的镜像:

    yaml
    - name: tools-sidecarimage: nicolaka/netshoot:latest  # 包含网络诊断工具# 或者使用 kubectl debug 的默认镜像# image: registry.k8s.io/debug:latestcommand: ["sleep"]args: ["infinity"]
    使用 nsenter 进入容器命名空间
    方法原理
    直接在节点上通过 nsenter 进入目标容器的 Linux 命名空间,使用宿主机的工具集。具体操作步骤
    找到目标 Pod 所在的节点和容器 IDbash
    # 获取 Pod 详细信息
    kubectl get pod <pod-name> -o wide# 获取容器 ID
    kubectl get pod <pod-name> -o jsonpath='{.status.containerStatuses[0].containerID}'
    # 输出类似: docker://a1b2c3d4e5f6...
    登录到目标节点bash
    # 如果使用 SSH
    ssh <node-ip-address># 或者如果节点在云平台上,可能通过其他方式登录
    使用 nsenter 进入容器命名空间bash
    # 根据容器ID找到进程PID
    CONTAINER_ID="a1b2c3d4e5f6"  # 从上面获取的实际ID
    PID=$(docker inspect --format '{{.State.Pid}}' $CONTAINER_ID)# 进入容器的网络命名空间
    nsenter -t $PID -n ip addr show
    nsenter -t $PID -n netstat -tulpn
    nsenter -t $PID -n ss -tulpn# 进入容器的所有命名空间(类似进入容器内部)
    nsenter -t $PID -m -u -i -n -p sh
    实用的 nsenter 调试命令bash
    # 网络诊断
    nsenter -t $PID -n tcpdump -i any -w /tmp/debug.pcap
    nsenter -t $PID -n curl -v http://localhost:8080
    
    # 进程诊断
    nsenter -t $PID -p ps aux
    nsenter -t $PID -p lsof -p 1# 文件系统检查(需要挂载命名空间)
    nsenter -t $PID -m ls -la /app/logs
    nsenter -t $PID -m cat /etc/hosts# 使用宿主机的strace调试容器内进程
    nsenter -t $PID -p strace -p 1

     




http://www.jsqmd.com/news/46389/

相关文章:

  • 11.20 OP222操纵杆气缸报警
  • Linux部署Minio
  • 面向对象的设计第一阶段设计总结分析
  • C语言中的strcat的模拟实现
  • 2025年比较好的真石漆岗亭厂家推荐及选择参考
  • 《数字破局》第三章需求迷雾
  • 利用配置错误的postMessage()函数实现DOM型XSS攻击
  • 《数字破局》 第二章:规划与选人
  • 2025年北京除甲醛服务机构权威评测:氧道净醛水漆/甲醛净化/新房装修除甲醛服务机构解析
  • 2025年口碑好的矿用气动遥控平板车杭州别墅大宅装修
  • 2025 年试验箱生产厂家全景推荐!六大实力厂商覆盖全品类需求,品质与服务双保障
  • 2025年靠谱的纸箱珍珠棉用户好评厂家排行
  • 2025年质量好的矿用防爆柴油机搬运车行业内口碑厂家排行榜
  • if __name__ == __main__作用
  • 2025B2B外贸独立站优化服务商有哪些-外贸服务商测评推荐
  • 2025年质量好的自动伸缩门厂家推荐及选择参考
  • 全新AI增强Demo发布:DHTMLX Gantt与Diagram如何通过LLM更智能地构建项目与组织结构
  • DELL服务器设置来电自动启动
  • 电梯调度
  • 锚点定位
  • 2025医用隔离电源哪家好?深度测评
  • 2025年靠谱的飞手接单专业推荐榜单
  • 2025年口碑好的大连装修设计用户口碑最佳排行
  • 聚焦医疗基建:2025年中心供氧工程推荐深度解析
  • ftp下载 linux
  • 纠结2025隧道升压器哪家好?测评这几家优质隧道升压器厂家
  • 2025广州口碑最好的留学机构有哪些
  • 2025大连留学中介公司名单
  • 2025北京有哪些留学中介公司
  • 2025年11月北京老房翻新装修公司推荐:五家知名企业详细列表及专业化选择建议