在GKE中处理Pod中的数据一致性

时间:2018-11-02 11:28:06

标签: kubernetes google-kubernetes-engine

我在github中以JSON格式存储了我的数据。我的Pod会克隆此仓库并使用它们,并且每当对这些数据进行更新时,都会触发git钩子,期望我的Pod可以使用最近的数据进行更新(通过提供git pull)。我已经通过负载平衡器公开了此更新服务,并在githook中对其进行了配置。

但是,当git hook触发时,只有一个Pod会收到请求并进行git pull。有没有办法通知我该服务下的所有Pod更新其本地商店?

因此,为了实现这一目标,我寻找了一种可以在Kubernetes集群中运行的所有容器中安装的共享存储。例如,相当于AWS EFS的.Google Cloud File Store。因此,只要Github中有新的提交,负载平衡器就会要求其中一个容器更新文件存储。由于这是安装在所有容器中的同一文件存储,因此它们都将提供最新数据。

但是, 1. Cloud File Store仍处于Beta不在GA中。

在kuberentes环境中如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

如果您要求在kubernetes中设置具有多个要读取的Pod的公共卷的方法,则可以按照http://domainname.com/category/product-name.html

中的说明设置NFS Pod。

我将它用于kubernetes中的Jenkins设置,并且做得很好。

答案 1 :(得分:0)

您可以尝试2种方法: 1.每个pod(通过cron作业)尝试将数据从中央存储中拉出,例如每分钟一次,并在有可用更新时更新工作目录。 2.中央服务器将更新分别推送到Pod(此处不适合进行负载平衡)。

您还可以考虑通过Deployments来实现。如另一个答案所述,
NFS对于共享目的很有用。