Kubernetes:如何管理具有多个副本的数据?

Kubernetes: How to manage data with multiple replicas?

我目前正在学习 Kubernetes,但我一直卡在如何处理以下情况:

我有一个 Spring 启动应用程序来处理用户上传的文件(照片、pdf 等...),用户也可以下载这些文件。此应用程序还生成分布在 6 个不同文件中的日志。为了让我的生活更轻松,我决定有一个包含 2 个子目录(1 个用户数据目录和 1 个日志目录)的根目录,因此该应用程序仅适用于 1 个目录(appData

.appData
     |__ usersData
     |__ logsFile

我想使用 GKE (Google Kubernetes Engine) 来部署这个应用程序,但我遇到了这些问题:

关于数据库副本的相同问题。 我使用 PostgreSQL 并且我有同样的问题。如果我们有多个副本,由于请求是随机发送到副本的,如何确保请求数据会return结果?

我知道有很多问题。非常感谢您的说明。

您可以在 GKE (Google Kubernetes Engine) 中使用 NFS 使用持久卷在 pods 之间共享文件。 https://cloud.google.com/filestore/docs/accessing-fileshares

我会为日志和共享文件做两个单独的解决方案。

对于日志,请查看像 fluentd 这样的日志聚合器。

对于共享文件系统,您需要 NFS。看看这个例子:https://github.com/kubernetes/examples/tree/master/staging/volumes/nfs。 NFS 将使用来自 GKE、Azure 或 AWS 的持久卷。它本身不是云不可知论者,但如果您想在不同的云中工作,您唯一需要更改的是您的供应商。