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盘、

你可能感兴趣的:(【更新中...】项目中的那些事,kubernetes,java,容器,OOM,NFS)