排查K8s Pod Core Dump问题

排查K8s Pod Core Dump问题的步骤

检查Pod日志

通过kubectl logs <pod-name>查看Pod的标准输出和错误日志,确认是否有崩溃或异常信息。若容器已重启,添加--previous参数查看前一个容器的日志。

检查Core Dump文件位置

默认情况下,容器内的Core Dump文件可能生成在/var/lib/systemd/coredump/tmp目录。需确认容器是否配置了Core Dump路径,通过kubectl exec -it <pod-name> -- ls /tmp检查目标路径。

启用Core Dump收集

在容器内执行ulimit -c unlimited临时启用Core Dump。永久生效需在Pod的securityContext中配置:

yaml 复制代码
securityContext:
  capabilities:
    add: ["SYS_PTRACE"]
  privileged: false

配置Core Dump路径

在Pod的initContainer或主容器中挂载HostPath,将Core Dump保存到持久化存储:

yaml 复制代码
volumeMounts:
- name: coredump-vol
  mountPath: /tmp/coredump
volumes:
- name: coredump-vol
  hostPath:
    path: /var/coredumps
    type: DirectoryOrCreate

分析Core文件

将Core文件复制到本地后,使用gdb分析:

bash 复制代码
gdb <binary-path> <core-file>

执行bt full查看完整堆栈跟踪,定位崩溃点。

检查资源限制

通过kubectl describe pod <pod-name>确认是否因内存不足(OOMKilled)触发崩溃。调整resources.limits中的内存配置:

yaml 复制代码
resources:
  limits:
    memory: "2Gi"

内核参数调优

在节点上修改/etc/sysctl.conf,确保内核允许Core Dump:

bash 复制代码
echo "kernel.core_pattern=/var/coredumps/core.%e.%p" | sudo tee -a /etc/sysctl.conf
sysctl -p

使用Debug工具

对于复杂问题,在Pod中安装调试工具(如strace):

bash 复制代码
kubectl exec -it <pod-name> -- apt-get update && apt-get install -y strace
strace -p 1

检查依赖库

通过ldd <binary-path>确认容器内依赖库版本是否匹配。使用docker historykubectl describe pod检查基础镜像的变更历史。

复现问题

若条件允许,在测试环境复现问题。通过kubectl debug启动临时调试容器:

bash 复制代码
kubectl debug -it <pod-name> --image=busybox --target=<container-name>
相关推荐
天天喝旺仔23 分钟前
Linux 性能排查实战:用 perf、strace 与火焰图定位 CPU、内存与 IO 瓶颈
linux·性能优化·运维开发
LuminousCPP29 分钟前
Linux系统编程(二):从目录树到命令执行|路径、环境变量、alias 与文件操作入门
linux·经验分享·笔记
第十人i32 分钟前
Linux 系统初始化配置清单:新服务器快速部署
linux·服务器
LongRunning34 分钟前
【Linux】RK3568-OpenCV+YOLO(七)
linux
j7~41 分钟前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
一直在努力学习的菜鸟1 小时前
Docker Info 详细解析(Rocky Linux 8.10 / Docker 29.8.1)
docker
傲世仙尊1 小时前
设计者的取舍-路径fork的诞生与全局文件队列
linux
逐流人1 小时前
Containerd容器管理实战:从架构原理到nerdctlcrictl工具链
linux·运维·云原生·容器·云计算·containerd
Tairitsu_H1 小时前
[Linux] 编辑器vim、编译器和动静态链接
linux·vim·gcc·g++·动态链接·静态链接
lzx_0021 小时前
Linux指令(一) 简单了解部分指令
linux