k8s 下 java 服务出现 OOM 后获取 dump 文件
文章目录
- 背景
- 解决
- 第 1 步:通过 Dockerfile 挂载 NFS 盘
- 第 2 步:修改 dump 路径为 NFS 盘路径
- 第 3 步:OOM dump 验证
- 参考
背景
😂 背景:项目部署在RainBond(k8s)环境下,容器出现 OOM 异常后,k8s 会自动进行滚动更新。
恰恰因为滚动更新,会导致原来的容器被删除。这就导致后面没法使用原有容器排查 OOM 原因。
🚀 目标:Java 应用 OOM 后,自动保存 dump 文件,便于后续分析 OOM 原因。
解决
解决思路:使用 NFS 作为共享存储,将 dump 文件放到 NFS 中保存。
1、搭建NFS
2、Dockerfile挂载NFS
3、调整java启动参数,设置dump路径
第 1 步:通过 Dockerfile 挂载 NFS 盘
必备条件:k8s pod与NFS网络通畅 + pod有privileged权限
详细文档:云原生环境 - Dockerfile挂载nfs盘、