Spring Kubernetes 上文件操作的批量重启能力

Spring Batch Restartability on Kubernetes for File Operations

我想了解在 Kubernetes 上重新启动 spring 批处理应用程序时,到达已处理文件的正确方法是什么。 特别是如果目标类型是文件,作业失败后连同pod一起删除

我们正在考虑使用持久卷或通过实施侦听器将创建的文件备份到某个地方,例如 DB 或 sftp 服务器。

有没有人有使用persistent volume(nfs或其他解决方案)进行文件操作的经验。我们关注性能和意想不到的问题。你有什么建议吗?

谢谢。

如果您想要数据持久化,您可以先使用 hostPath 卷开始。这将限制您的 pods 可以在哪些节点上生成。但是是最简单的,给你最好的性能。

https://kubernetes.io/docs/concepts/storage/volumes/#hostpath

如果要动态分配,需要配置GlusterFS、NFS、CEPH等存储方案

您不应该依赖 Pod 的临时文件系统来获取应该保留并在作业 (Pod) 失败后幸存下来的文件。

您需要为此使用持久卷,以便 Spring Batch 可以在重启场景中找到(不完整的)输出文件并从中断处继续写入。