文章目录
问题
在 docker 环境下,容器重启后还是原来的容器,数据并没有丢失。那是不是 k8s 环境下,重启也不会丢失呢?
在kubernetes/RainBond环境下,最小化的管理单元是 Pod 。对 Pod 的重启,本质上是先删除,然后启动新的容器。所以原本容器中的数据会丢失。
哪些数据需要持久化?
java程序中一般如下数据需要持久化:
- 程序日志
- 程序 GC 日志
- OOM 后产生的 dump 文件
解决办法
针对日志文件,可以通过 ELK/EFK 实现日志管理。程序日志上传到 ES,然后再 Kibana 中查询。
针对 OOM 后的 dump 文件,可以考虑使用共享存储或者挂载 NFS 盘。