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



我在github中的数据以JSON格式存储。我的pod克隆这个repo并使用它们,每当对这些数据进行更新时,就会触发一个git挂钩,我的pod将使用最近的数据进行更新(通过提供git pull(。我已经通过负载均衡器公开了这个更新服务,并在githook中配置了它。

然而,当githook触发时,只有一个pod得到请求并执行git pull。有没有办法通知我在该服务下的所有pod更新他们的本地商店?

因此,为了实现这一点,我寻找了某种共享存储,它可以安装在Kubernetes集群中运行的所有容器中。例如,相当于AWS EFS的谷歌云文件存储。因此,每当Github中有新的提交时,负载均衡器都会要求其中一个容器更新文件存储。由于这是安装在所有容器中的同一个文件存储,因此它们都将提供最新的数据。

但是,1.云文件存储仍处于Beta版本,而不是GA版本。

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

如果你想在kubernetes中用多个pod来设置一个公共卷,你可以像这个官方示例中解释的那样设置NFS pod

我在kubernetes的Jenkins设置中使用了这个,它做得很好。

有两种方法可以尝试:1.每个pod(通过cron作业(都试图从中央存储中提取数据,比如每分钟一次,当更新可用时,更新就是工作目录。2.中央服务器单独向pod推送更新(此处的负载平衡不合适(。

您也可以考虑通过部署来实现它。正如另一个答案中所提到的,
NFS在您的共享目的中可能很有用。

最新更新